serversocket不接受连接?

时间:2013-03-28 14:46:55

标签: java macos sockets

我正在使用Mac并尝试在本地计算机上运行服务器。这是代码

//1. creating a server socket
        providerSocket = new ServerSocket(0, 10);
        //2. Wait for connection
        System.out.println("Waiting for connection");
        try{
        connection = providerSocket.accept();
        }
        catch (IOException ex){
            System.err.println(ex);
        }
        System.out.println("Connection received from " +                   connection.getInetAddress().getHostName());

我正在看打印"等待连接"但不是"从......收到连接的印刷品。" 我看到代码仍在运行,这意味着accept()被阻止了?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您必须拥有连接到此服务器的客户端。直到服务器将等待。

检查此链接:

http://www.javaworld.com/jw-12-1996/jw-12-sockets.html

答案 1 :(得分:1)

由于您使用0作为端口号,这意味着ServerSocket将侦听任何可用的空闲端口。您必须确保客户端连接到该端口上的服务器。该端口可以通过ServerSocket.getLocalPort()获得。

更好的方法是对端口号进行硬编码,并使客户端连接到该端口。

答案 2 :(得分:0)

accept()阻塞,直到建立连接。你真的有一个客户端试图访问套接字?如果没有,我认为给你以下java trail a run though是有益的。