1. 服务器的IP
2. 服务器的Port
3. 客户端的IP
4. 客户端的Port
服务器的IP和Port可以保持不变,只要客户端的IP和Port彼此不同就OK了。
一个socket是可以建立多个连接的,为了阐释这个概念,你应该先明白一个TCP连接的标记为一个四元组
(source_ip, source_port, destination_ip, destination_port)
即(源IP,源端口,目的IP,目的端口)四个元素的组合。只要四个元素的组合中有一个元素不一样,那就可以区别不同的连接,比如:
你的IP地址是11.1.2.3, 在8080端口监听
那么当一个来自 22.4.5.6 ,端口为5555的连接到达后,那么建立的这条连接的四元组为
(11.1.2.3, 8080, 22.4.5.6, 5555)
这时,假设上面的那个客户(22.4.5.6)发来第二条连接请求,端口为6666,那么,新连接的四元组为
(11.1.2.3, 8080, 22.4.5.6, 5555)
那么,你主机的8080端口建立了两条连接;
但是,此时上面的那个客户(22.4.5.6)发来的第三条连接请求的端口如果为5555或6666的新连接,那么由于无法区分于上面两条连接,那么第三条连接的请求就无法建立
进一步的理解:
也可以在同一个端口号和IP地址上绑定一个TCP套接字和一个UDP套接字
原因在于端口号虽然一样,但由于协议不一样,所以端口是完全独立的
tcp/udp一般采用五元组来定位一个连接:
src_ip, src_port, dest_ip, dest_port, protocol_type