Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ServerSocket未绑定到端口_Java_Sockets_Port - Fatal编程技术网

Java ServerSocket未绑定到端口

Java ServerSocket未绑定到端口,java,sockets,port,Java,Sockets,Port,我有一个服务器代码,它试图根据给定的端口范围获得一个空闲端口- private ServerSocket allocatePort() throws IOException { ServerSocket server = null; for (int i=0; i<serverPortRange; i++) { int port = serverPort.intValue()+i; try { server = new

我有一个服务器代码,它试图根据给定的端口范围获得一个空闲端口-

private ServerSocket allocatePort() throws IOException {
    ServerSocket server = null;
    for (int i=0; i<serverPortRange; i++) {
        int port = serverPort.intValue()+i;
        try {
            server = new ServerSocket(port);
            break;
        } catch (IOException e) {
            log.debug(String.format("DCServer could not allocate port %s", port));
        }
    }
    if (server == null) {
        throw new IOException();
    }
    return server;
}
private ServerSocket allocatePort()引发IOException{
serversocketserver=null;

对于(int i=0;i,Java可以为您提供以下功能:

创建绑定到指定端口的服务器套接字。端口为0 在任何空闲端口上创建套接字


谢谢,我知道这项功能,但在本例中,我实际上对提供服务器套接字的特定范围感兴趣。将代码中的第6行替换为以下3行:server=new ServerSocket();server.setReuseAddress(true);server.bind(new InetSocketAddress(“127.0.0.1”,port));只需使用新的ServerSocket(port)在JRE版本和操作系统平台之间不是很稳定。谢谢,我尝试了你的建议,但仍然没有绑定端口。两个客户端是否同时运行此代码?如果是,则没有任何一个客户端在日志中记录错误?因为同一台机器上的两个服务器套接字不能同时绑定到同一个端口。为什么客户端不能同时运行此代码是否为服务器设置了侦听端口?这是为服务器设置的。设置reuseAddress=true与问题的明确意图相反,因此这不是一个答案。其余的都是胡说八道。绑定到127.0.0.1是不必要的,除非您想限制谁可以连接,这在问题中也没有提到,而绑定到INADDR_ANY(默认设置)是不必要的非常“稳定”,与你的说法相反