如何使客户端套接字等待服务器套接字

如果客户端套接字在服务器套接字之前打开,Java将生成ConnectionException.所以我必须检查服务器是否可用并在执行前继续等待

socketChannel.open(主机名,端口)

在客户端线程中.我找到了一个相关的API:

InetAddress.getByName(主机名).isReachable()

但是,这仍然无法判断特定端口上的套接字是否已打开.
我认为这个问题应该很常见,但我没有从谷歌和其他地方获得非常有用的信息.

最佳答案
boolean scanning=true;
while(scanning)
{
    try
    {
        socketChannel.open(hostname, port);
        scanning=false;
    }
    catch(ConnectionException e)
    {
        System.out.println("Connect failed, waiting and trying again");
        try
        {
            Thread.sleep(2000);//2 seconds
        }
        catch(InterruptedException ie){
            ie.printStackTrace();
        }
    } 
}

这是声纳评论的代码

转载注明原文:如何使客户端套接字等待服务器套接字 - 代码日志