我正在使用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()被阻止了?我该如何解决这个问题?
答案 0 :(得分:1)
答案 1 :(得分:1)
由于您使用0
作为端口号,这意味着ServerSocket
将侦听任何可用的空闲端口。您必须确保客户端连接到该端口上的服务器。该端口可以通过ServerSocket.getLocalPort()
获得。
更好的方法是对端口号进行硬编码,并使客户端连接到该端口。
答案 2 :(得分:0)
accept()阻塞,直到建立连接。你真的有一个客户端试图访问套接字?如果没有,我认为给你以下java trail a run though是有益的。