5

この奇妙な例外は、64 ビット (windows 7 Ultimate) で実行している場合にのみ発生します。32 ビットの win7 Ultimate を実行している場合ではありません。現在、Javaバージョン1.6.0_26で実行されています

running server!
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)

コードは次のとおりです。

//import java.net.ServerSocket;
//import java.net.Socket;
import java.io.*;
import java.net.*;




public class Server {


 public static void main(String[] args) {
 System.out.println("running server!");
  int nreq = 1;
  try{
   ServerSocket sock = new ServerSocket(7337);
  for(;;){
   Socket newsock = sock.accept();
   System.out.println("Creating thread...");
   Thread t = new ThreadHandler(newsock, nreq);
   t.start();
   nreq++;
  }
  }

  catch(Exception e)
  {

   e.printStackTrace();

  }
 }
}

このビットを指している行で参照されているエラー:

Socket newsock = sock.accept();
4

3 に答える 3

1

Windows7とインストールしたJavaSDKのバージョンに問題がある可能性があります。OracleのWebサイトから最新バージョンのJavaSDK7をダウンロードしてインストールします。それが役立つかどうかを確認してください。

于 2012-11-17T23:19:26.513 に答える
0

これらの問題は、JVMとOSの間に不一致がある場合に発生する可能性があります。1つは32ビットを実行し、もう1つは64ビットを実行します。

于 2012-11-17T23:17:45.113 に答える
0

問題はJava32ビットと64ビットではないと思います。

ただし、問題Windows32ビットとWindows64ビットの違いである可能性があります。

また:

1)次のJVMオプションを使用して実行してみてください。

  • -Djava.net.preferIPv4Stack = true

2) 64ビットバージョンのJavaがインストールされていることを確認してください

于 2012-11-17T23:20:21.850 に答える