java serverSocket 使用相同的端口,而客户端使用不同的端口

标签 java sockets network-programming port serversocket

在每个 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/

相关文章:

java - 使用一个由对象数组组成的对象...?

java - 无法找到附加程序

java - 想要在服务器上为每个客户端启动一个线程

javascript - 如何使用 javascript 库将 Socket.io 与 emscripten 一起使用?

java - 为什么 int 参数允许传递 char 值,但 char 参数不接受传递 int 值?

java - 我将如何编写自动检查以确保每个参数都有特定的注释?

c - TCP 连接中链接断开时的 send() 函数行为

c - 将主机文件 C 中的主机名解析为 IP 地址

c# - GetHostAddresses 不同的错误代码

javascript - 如何用nodejs解析telnet数据