簡體   English   中英

Java服務器工作在32位,但不是64位。 為什么?

[英]Java server works in 32-bit, but not in 64-bit. Why?

我只有在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)

這是代碼:

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

您肯定會遇到Windows 7以及已安裝的Java SDK版本的問題。 從oracle網站下載並安裝最新版本的Java SDK 7。 看看是否有幫助。

當JVM和OS不匹配時,可能會發生這些問題。 一個運行32位,另一個運行64位。

相信問題是Java 32位與64位。

問題可能是Windows 32位與Windows 64位,但是:

也:

1)請嘗試使用此JVM選項運行:

  • -Djava.net.preferIPv4Stack =真

2)請確保您已安裝64位版本的Java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM