[英]Socket writing java (android) to python
我想创建一个超级基本的Android应用程序,该应用程序可以连接到在我的PC上运行的python服务器,但是python服务器永远无法连接
我的Java代码:
public class WriteToSocket {
Socket sock;
public void Test() {
try {
this.sock = new Socket("PCName", 9871);
} catch (UnknownHostException e) {
System.out.println("Unknown host: PCName");
System.exit(1);
} catch (IOException e) {
System.out.println("No I/O");
System.exit(1);
}
}
public void Test1(){
try {
this.sock.close();
} catch (IOException e) {
System.out.println("No I/O");
System.exit(1);
}
}
和
public void onClick(View v) {
WriteToSocket a = new WriteToSocket();
a.Test();
}
而我的python服务器是
import socket
sock = socket.socket()
name = "PCName"
port = 9871
sock.bind((name,port))
sock.listen(1)
s,a = sock.accept()
我希望在单击按钮后使python服务器接受连接(我也尝试将“ PCName”更改为“ 127.0.0.1”)
我环顾四周,但到目前为止没有任何帮助:S
将您的服务器套接字绑定到您的android可以访问的PC的IP地址之一,而不是127.0.0.1。 或者将其绑定到所有可用接口(0.0.0.0)。
然后从您的android连接到该IP。
例如,如果您的PC的IP地址为1.2.3.4,则在两个应用程序中都使用该IP。
使用netstat查看端口是否在您的PC上真正打开。
检查您的Android应用程序是否具有使用互联网的权限(在清单中指定:“ USES_INTERNET”或类似名称)。
同样,您的python脚本会在建立连接后立即丢弃该连接。
在python中将绑定地址更改为0.0.0.0
。 它将绑定到连接到计算机的所有IP。 然后在android app中更改为正确的计算机IP。
IP 127.0.0.1
是回送 ,您不能从系统外部连接到它。
Android手机不知道PCName是什么,请将python代码中的“ PCName”更改回“ 127.0.0.1”,然后在android项目中放入服务器的本地IP地址。
当然,这假设电话和服务器都在同一本地网络上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.