在每个 Java 套接字程序中,我们都有一个带有端口号的 Serversocket 和 Client Socket
我对通信机制感到困惑,我们的服务器有一个固定的端口号,很明显服务器可以一一端口号进行连接,但是我们与客户端有不同的端口,我的意思是每次打印时它都会给我不同的端口号
System.out.println("caught a client : "+ client.getInetAddress() +" : "+ client.getPort());
我想知道客户端端口号每次都不一样的原因
谢谢
最佳答案
TCP 套接字连接由 4 个字段标识:源地址和端口、目的地址和端口。如果您在客户端使用固定端口,您将无法与同一服务器和端口建立另一个连接。
通常,客户端选择哪个端口并不重要,只要它未被使用即可。大多数程序将其留给操作系统来寻找空闲端口。
关于java serverSocket 使用相同的端口,而客户端使用不同的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24219883/