网络编程中端口为什么不会重复

  1. 网络编程
    JAVA中客户端带有IP地址种端口,服务器端只有一个端口。在庞大网络通信中为什么不会发生端口重复。每时每刻都有同样的通信发生所谓的端口早被挤爆了才对

代码

img

img

但 实际中一切运行正常

服务器端是不是默认带有IP地址

服务端只监听1个端口,当客户端发起连接时,会根据客户端的发起ip和发起端口,建立一个socket连接,之后只需要根据收到的包的发起ip和发起端口,就能区分不同的连接,所以服务端的端口只一个就够。

客户端虽然每次发起新连接,就会消耗自身的一个端口,但是通常的连接并不会持续太久,长连接也不会太多,因此自带的65535个端口也足够使用。

补充一下 区分一个tcp连接是四个元组决定的 客户端iP 十 客户端端口 十 服务端ip 十 服务端端口 现实生活中客户端的ip基本是不同的。同一个客户端可以有几万个连接一般足够使用了