ラップトップで実行されているサーバープログラム、同じルーター、同じコードがあります。問題なく動作し、クライアントは接続できます。ただし、ワークスペースを PC にコピーして実行すると、次のナンセンスが発生します。
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)
関連する場合、問題が発生している PC で Windows 7 64 ビット Ultimate を使用しています。正常に動作するラップトップは、Windows 7 32 ビットです。したがって、私が認識できる唯一の違いは、32 ビットと 64 ビットの違いです。
これは関係がありますか?わかりません。 http://forums.codeguru.com/showthread.php?522257-Windows-Sockets-64-bit