java - 我如何在java中选择哪个端口可以免费用于ServerSocket或Socket?

标签 java sockets

我正在研究java。如何检查端口是否可以自由用于 ServerSocket? 此外,当 accept() 函数返回 Socket 时,它是否默认给出端口和 IP 地址,或者我也必须指定它?

最佳答案

您可以将 java.net.ServerSocket 构造函数与端口 0 结合使用,告诉 ServerSocket 查找空闲端口。

documentation :

port - the port number, or 0 to use a port number that is automatically allocated.

示例:

int port = -1;
try {
    ServerSocket socket = new ServerSocket(0);
    // here's your free port
    port = socket.getLocalPort();
    socket.close();
} 
catch (IOException ioe) {}

关于java - 我如何在java中选择哪个端口可以免费用于ServerSocket或Socket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277943/

相关文章:

c - 关于套接字/tcp 连接的多线程的问题

java - Lambda 表达式可以解决死锁吗?

java - hibernate : parent contains a collection of children, 当 child 被删除/保存时我想自动 "refresh" parent 的集合

更新另一个时 Java 列表已更改

sockets - App Engine 开发服务器 - 套接字协议(protocol)类型错误

linux - 在 centos 7 上同步确认后的 socket 鳍

java - 更改 JavaFX 文本区域中所选内容的前景色

java - 在Hadoop/层叠中从FTP服务器读取数据

c - 在每个进程的非阻塞监听器上使用带有accept() 的多个线程

java - java中套接字编程中的Connection Refused错误