我正在尝试创建一个简单的应用程序。我想让我的手机成为服务器套接字,我试图从我的电脑发送消息,我的电脑是客户端就是这种情况。
当它们在同一个网络中时,它工作正常,但是当我将手机连接到 3G 网络时,我在我的 PC 中收到错误“连接超时”。
我正在使用来自 no-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()); }
电脑客户端
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:他们必须在不同的网络中