Android Java套接字-连接超时



我正在尝试创建一个简单的应用程序。我想让我的手机成为服务器插座,我正试图从我的电脑发送消息,在这种情况下,我的电脑就是客户端。

当他们在同一个网络中时,它工作正常,但当我将手机连接到3G网络时,我在电脑中收到错误"连接超时"。

我使用的主机没有ip(在这两种情况下)。例如,当我执行"telnet mycellphonehost.org 8080"时,我没有问题,它可以连接。我认为无ip主机工作得很好,因为它给了我正确的外部ip。

我还使用一个名为FIREBIND的应用程序来测试端口是否打开。结果是:"Firebind成功地使用TCP协议通过该端口传输和接收数据。"

我已经读过很多关于这个主题的问题,类似的问题。。。但没有什么能帮我解决这个问题。我希望有人能帮我。提前谢谢!

遵循代码:

  • 安卓服务器

    try{
            ServerSocket server = new ServerSocket(port);
            Socket s = server.accept(); 
            BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
            System.out.println(input.readLine());
            input.close();
            s.close();  
            server.close();
    }
    catch(IOException e){
            System.out.println("ERROR: " + e.getMessage());
    }  
    
  • PC客户端

    try{
            Socket s = new Socket("myhostfromno-ip.org",port);
            PrintStream output = new PrintStream(s.getOutputStream());
            output.println("TEST MESSAGE");
            output.flush();
            s.close();
    }   
    catch(IOException e){
            System.out.println("ERROR: " + e.getMessage());
    }  
    
  • PS:他们必须在不同的网络

我建议对单元格使用GCM通知,然后进行服务器拉取。它当然要快得多,而且您可以使用一个简单的REST服务器来提供数据。

你需要让你的电脑成为服务器,让你的机器人成为客户端。

相关内容

  • 没有找到相关文章

最新更新