如何为Java套接字指定端口范围?

Rol*_*der 10 java sockets udp tcp

在Java中,您可以将数字0作为Socket或DatagramSocket构造函数的单个参数.Java将Socket绑定到一个空闲端口.是否可以将端口查找限制在特定范围内?

fre*_*ace 7

Hrm,在阅读了文档之后,我认为你不能.您可以绑定到任何端口,然后重新绑定(如果不可接受),或重复绑定到范围中的端口,直到成功为止.第二种方法将是最"有效"的.

我对这个答案感到不安,因为它不太优雅,但我真的找不到任何其他东西:/

  • 您还应注意,在对自由端口进行线性搜索时,有时会产生安全隐患.如果您将端口A用于客户端1,将端口A + 1用于下一个客户端,则客户端1可以猜测您将用于其他客户端的端口. (2认同)