2012-11-19 27 views
1

當在計算機A上運行ServerSocket時,使用IP 145.74.217.109 然後嘗試使用計算機B使用ip 145.74.219.103連接到計算機A,我無法連接。 但是,當使用機器C與ip 145.74.217.180它的作品。不在相同的IP範圍內時不能連接Socket。 (子網)

Iam不確定這是否可以在代碼或其正義網絡設置中解決。如果是網絡問題,還有另外一種解決這個問題的方法,還是我需要從套接字去... ...?

機答:

public void run() { 
     try { 
      sock = new ServerSocket(Constants.PORT); 
      for (;;) { 
       Socket newsock = sock.accept(); 

       System.out.println("Accepting new player: "); 

       new PaintballPlayer(newsock); 
      } 
     } catch (Exception e) { 
      System.out.println("IO error " + e); 
     } 
     System.out.println("End!"); 

     try { 
      sock.close(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

機B,C:

socket = new Socket(ip, Constants.PORT); 

回答

0
,如果你看一下IP美國服務器

具有IP 145.74.217.109 IP與145.74.217.180能夠同時145.74.219.103不能夠連接連接它意味着子網145.74.219.X無法訪問145.74.217.X,這就是爲什麼它無法連接。這是網絡設置問你的網絡管理員。讓你的兩臺機器具有相同的子網掩碼

+0

好吧,這是我可恥的theres沒有辦法繞過它。謝謝。 –

+0

@zaffargachal如何使用套接字在不同的子網上連接兩臺機器?我能夠ping那些機器,但套接字不起作用。 – DeepSidhu1313

+0

@ DeepSidhu1313確保端口是開放的並且彼此可訪問。嘗試telnet命令來檢查端口是否打開,並可以從該機器訪問 – zaffargachal