Java服务器工作在32位,但不是64位.为什么?

iFo*_*gin 5 java sockets 64-bit serversocket java-server

我只有在64位运行时才会遇到这个奇怪的异常(Windows 7终极版)不是在运行32位win7终极时.目前它在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)
Run Code Online (Sandbox Code Playgroud)

这是代码:

//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();

  }
 }
}
Run Code Online (Sandbox Code Playgroud)

在指向此位的行上引用的错误:

Socket newsock = sock.accept();
Run Code Online (Sandbox Code Playgroud)

Ola*_*che 0

当 JVM 和操作系统之间不匹配时,可能会出现这些问题。一个运行 32 位,另一个运行 64 位。