网络编程之端口
2.1 端口作用
- 端口是操作系统分配给网络应用程序的编号, 当接收到数据之后, 操作系统会根据编号来将数据转发到对应编号的应用程序.
-
网络程序必须要有端口号.
2.2 端口号
端口号就是标识端口的一个编号. 在 Linux 系统中, 端口号在 0-65535 之间. 端口号不是随意使用的, 而是按照一定的规定(操作系统规定)进行分配. 端口号分:
- 知名端口号.
- 动态端口号.
网络通信的流程先通过 IP 地址找到网络中的设备, 再通过网络端口号来找到对应的程序端口, 然后通过端口把数据传输给对应的应用程序.
2.2.1 知名端口 (Well Known Ports)
知名端口号是系统程序使用的端口号. 知名端口范围从 0 到 1023.
- 80 端口分配给 HTTP 服务
- 22 端口分配给 SSH 服务.
- 21 端口分配给 FTP 服务
2.2.2 动态端口(Dynamic Ports)
动态端口号是普通程序使用的端口号. 动态端口的范围是从 1024 到 65535. 当这个程序关闭时, 同时也就释放了所占用的端口号.
2.2.3 如何查看端口号
-
用 netstat -an | grep “:8080” 检验本机各端口的网络连接情况.
-
用 lsof -i [tcp/udp]:8080 列出当前系统端口所对应的程序.