我有我的笔记本电脑上运行的服务器程序,相同的路由器和相同的代码。它工作很好,客户可以连接。然而,当我复制的工作空间我的电脑,当我运行它,我得到这个废话:什么可能导致“IO错误java.net.SocketException:选择失败”?
IO错误java.net.SocketException异常:选择失败
这里是代码...
public static void main(String[] args) {
System.out.println("running server!");
int nreq = 1;
try{
ServerSocket sock = new ServerSocket(7331);
for(;;){
Socket newsock = sock.accept();
System.out.println("Creating thread...");
//Thread t = new ThreadHandler(newsock, nreq);
//t.start();
nreq++;
}
}
catch(Exception e)
{
System.out.println("IO error " + e);
}
基本上可能会导致这种错误(我可以在网上找不到有用的信息)在一台PC上发生,而不是另一台PC上发生?它必须是关于PC本身的东西。我很困惑。基本上它不能打开一个插座?
以下是完整的堆栈跟踪:
java.net.SocketException: select failed
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at Server.main(Server.java:18)
如果是相关的,我使用的是Windows 7 64位旗舰版这是给我的问题在PC上。它可以正常工作的笔记本电脑是Windows 7 32位。所以我唯一可以区分的是32位和64位。
这可能是相关的吗?我不明白。 http://forums.codeguru.com/showthread.php?522257-Windows-Sockets-64-bit
听起来好像它说没有连接,并且因为它而引发异常。 – 2012-08-12 23:46:19
哪一条是第18行? – cyroxx 2012-08-12 23:53:01
你是什么意思?我现在在线使用同一台计算机。它只是打开端口来侦听传入的客户端连接,该程序不需要建立任何客户端 - 服务器连接来开始运行,甚至无法运行。 – ILikeWater 2012-08-12 23:53:01