服务器和客户端都有端口号,但是,服务器的端口号是重要的,因为客户端只有了解了服务器的地址和端口号,才可以连接到它(即使是采用UDP传输数据,也需要指定发送目标的地址和端口号);而客户端的端口号是无关紧要的,一般由操作系统自动分配。
服务端怎么知道和客户端的哪个进程连接???
---------------------------------------------------------
对于TCP,服务器在客户端连接后,会在监听套接字之外另外生成一个新的套接字,表示与客户端的连接,这个套接字了解客户端的地址和端口号,从而可以区分是哪个客户端;
对于UDP,服务器在收到UDP数据时,也了解数据来自什么地址和端口,也可以区分是哪个客户端。
从基本的网络概念来说,网络层(IP)负责两个主机间的通信,用IP地址区分主机;传输层(TCP和UDP)处理两个进程间(可以是在同一台机器中的两个进程,也可以是不同主机中的两个进程)的通信,用端口号区分进程。两者合起来就是,用 IP地址+传输层协议+端口号 来区分与谁进行通信。(传输层协议就是指TCP或者UDP,也可以是别的传输层协议,因为互联网协议栈是个开放的结构,其他传输层协议也可以利用IP作为网络层提供的服务)
服务器端口号
最新推荐文章于 2022-08-30 17:37:23 发布