我正在尝试创建一个简单的应用程序。我想我的手机是服务器插座而我正试图从我的电脑发送消息,我的电脑是客户就是这种情况。
当他们在同一个网络中时工作正常但是当我在3G网络中连接手机时,我的PC上收到错误“连接超时”。
我正在使用来自no-ip的主机(在这两种情况下)。当我'telnet mycellphonehost.org 8080'例如我没有问题,它能够连接。我认为no-ip主机工作正常,因为它给了我正确的外部IP。
如果端口是打开的,我还使用一个名为FIREBIND的应用程序进行测试。结果是:“Firebind成功地能够使用TCP协议通过此端口传输和接收数据。”
我已经阅读了很多关于这个问题的问题,类似的问题......但没有什么能帮我解决这个问题。我希望有一个人可以帮助我。提前谢谢!
遵守以下准则:
Android服务器
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:他们必须在不同的网络
答案 0 :(得分:0)
我建议将GCM用于细胞 通知,然后服务器拉。它当然要快得多,您可以使用简单的REST服务器来提供数据。
您需要将PC作为服务器,将droid作为客户端。