有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

socketjava服务器socket使用相同的端口,而客户端使用不同的端口

在每个Java socket程序中,我们都有一个带有端口号的Serversocket和Client socket

我对通信机制感到困惑,我们对服务器有一个固定的端口号,服务器显然需要连接一个端口号,但是我们与客户端有不同的端口,我的意思是每次打印时它都会给我不同的端口号

System.out.println("caught a client : "+ client.getInetAddress() +" : "+ client.getPort());

我想知道客户端口号每次都不一样的原因

谢谢


共 (1) 个答案

  1. # 1 楼答案

    TCP套接字连接由4个字段标识:源地址和端口,以及目标地址和端口。如果在客户端使用固定端口,则无法与同一服务器和端口建立另一个连接

    通常,客户端选择哪个端口并不重要,只要它不在使用中。大多数程序都让操作系统来寻找空闲端口