我试图通过本地网络在两部Android手机之间传输消息。我读了插座,这是一个很好的方法。 (我不能使用蓝牙) (我也不能使用NFC)
我已经构建了一个服务器和客户端应用程序。
一个应用程序有一个侦听连接的服务器。
另一个应用程序有一个客户端,当按下按钮时尝试连接。
两个清单文件都包含正确的权限。 (使用html标签)
uses-permission android:name =" android.permission.INTERNET" /
uses-permission> android:name =" android.permission.ACCESS_NETWORK_STATE" /
我先将服务器放在网上:
ServerSocket myServerSocket = new ServerSocket(27024);
System.out.println("Server is waiting for incoming connection on host=" + InetAddress.getLocalHost().getCanonicalHostName() + ", port=" + myServerSocket.getLocalPort());
Socket socket = myServerSocket.accept();
然后尝试与客户端连接。
String host = "localhost";
int port = 27024;
try{
System.out.println("Client attempting to connect to server at host: " + host + ", port: " + port);
Socket socket = new Socket(host, port);
//This below line never gets called :(
System.out.println("Client socked created! Now trying to send data to server");
}
在我的控制台中:
客户端尝试连接到主机上的服务器:localhost,port:27024
"客户socked创建!" line永远不会输出。
两个主机都设置为" localhost"和端口号是一样的。
我尝试了各种端口,但没有任何反应。
答案 0 :(得分:1)
String host = "localhost";
int port = 27024;
您意识到您的客户端需要获得服务器的IP地址,对吧?
注意您很可能无法或永远不应该在非WiFi接口上绑定应用。