簡體   English   中英

服務器未從正確的IP和端口打開的客戶端接收消息

[英]Server not receiving message from client with correct IP and port opened

什么會導致這種情況發生?

我將筆記本電腦移到朋友家中從事該項目。 我在他的xfinity路由器上打開了相同的端口,並將代碼的所有區域更改為他的IP。 但是,似乎客戶端正在發送一條消息,而服務器卻從未越過這部分代碼

System.out.println("running server!");
        int nreq = 1;
        try{
            //SET ME PORT
            ServerSocket sock = new ServerSocket(7332);
        for(;;){
            Socket newsock = sock.accept();
            System.out.println("Creating thread...");
            //Broken Old Login crap, needs reworked for map n stuff anyhow now
        //  Thread t = new ThreadHandler(newsock, nreq);
            Thread t = new RequestInterpreter(newsock, nreq);
            //t.run();
            t.start();
            nreq++;
        }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }    

它永遠不會打印“正在創建線程”。 我不確定從哪里開始可能在這里出什么問題?

唯一發生變化的是房屋,IP,路由器和互聯網。 在其他地方均可使用。 那些更改怎么辦可能會阻止客戶端發送

這也是我寫的測試客戶。

import java.io.DataInputStream;
import java.io.PrintWriter;
import java.net.Socket;




public class testClientConnection {

    public static void main(String[] args) {

        System.out.println("Starting testConnection");
        try{            

        Socket s = new Socket("xx.xx.xx.xxx", 7332);        

        DataInputStream fromServer = new DataInputStream(s.getInputStream());  
        PrintWriter toServer = new PrintWriter(s.getOutputStream(), true);    
        toServer.println("account name");
        toServer.println("password");
        toServer.println("Login");

        System.out.println("Sent message...");

        String response = fromServer.readLine().toString();
        //Toast the result here?  //testing

        System.out.println("response: " + response);
        if (response.equals("Login Success")) {

System.out.println("Login Success!!!");
        }
        }
        catch(Exception e){   /         
        }       
    }
}

巨大的更新!

好的,我的客戶是一部Android手機,我關閉了wifi,因此它掉落到4g-LTE上。 然后它起作用了。 所以...某些東西阻止了客戶端代碼。 那可能是什么?

您朋友路由器上的防火牆通常是可疑的。 第二個可疑對象是目標計算機上的防火牆。

嘗試禁用那些。

問題將出在路由器上的NAT。

除非您設置端口轉發,以便路由器知道從外部發送傳入請求的位置,否則服務器不會在NAT設備后面工作。

暫無
暫無

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

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