2011-08-22 20 views
0

我试图创建一个新的套接字,但它一直寻找一个IO异常,说如何调试Java套接字创建错误

无法获取连接到I/O:本地主机。

这里是我的代码片段:

Socket mySocket = null; 
    BufferedReader in = null; 

try{ 
    mySocket = new Socket("localhost",4444); 
    in = new BufferedReader(new InputStreamReader(mySocket.getInputStream())); 
} catch (UnknownHostException e) { 
    System.err.println("Don't know about host: localhost."); 
    System.exit(1); 
} catch (IOException e) { 
    System.err.println("Couldn't get the I/O for " + "the connection to: localhost."); 
    System.exit(1); 
} 

我试图改变我的主机名“localhost”改成也是我的主机名我的电脑(即打字主机名在cmd中找到主机名)。还尝试了另一个端口,但它一直给我同样的错误。有什么提示或方法来调试呢?或者你能找出问题所在?感谢您的帮助。

+2

我不认为你可以访问输入流,直到套接字连接。也就是说,您还需要一些在该端口上侦听的服务器。 – sje397

回答

2

这意味着没有人正在监听机器上的端口4444。插座是具有2个边的通道连接器:插座。通常服务器端有一个ServerSocket,客户端有一个Socket。

+0

嗯我试图在客户端使用Socket来侦听tcp数据来自已经编译为jar的另一个应用程序。我想从你的评论这是不可能的,除非我以某种方式配置的应用程序是一个jar文件有一个ServerSocket以及?希望这是有道理的。 –

+0

@O_O AlexR是对的。您必须为服务器应用程序配置ServerSocket,以便您能够接收客户端请求。 –