我正在从 python 脚本向我的 android 手机发送一个套接字,反之亦然。当我的 android 向我的 python 脚本发送数据包时,它可以工作,但是从 python 脚本向 android 发送数据包会出现此错误:
Error sending socket [WinError 10061]
No connection could be made because the target machine actively refused it
注意:当从 android 发送到 python 函数使用不同的套接字和不同的端口。此处出现错误
s.connect((host, port))
这是我发送数据包的python代码:try:
s = socket.socket()
host = "ip_address_of_android"
port = 7801
s.connect((host, port))
print("connected")
s.listen(5)
print("sending")
text = "hello"
s.sendall(text.encode())
s.close()
except Exception as e:
print("Error sending socket ", e)
这是我接收数据包的 android studio 代码:
public String receives() {
Socket socket;
DataInputStream ds;
try {
socket = new Socket("ip_address_of_android", 7801);
ds = new DataInputStream(socket.getInputStream());
boolean done = false;
while (!done) {
result = ds.readUTF();
}
} catch (Exception e) {
System.out.print("error");
}
return result;
}
我假设这是一个 android 防火墙错误,但我不知道如何解决这个问题。提前致谢。
最佳答案
listen()
和 accept()
. connect()
.它不应该 listen()
. “目标机主动拒绝”表示客户端成功到达服务器的网络接口(interface),但是服务器操作系统却说“没有人打开7801端口,所以我没有什么可以连接你的。” Android端从来没有打开7801,因为它从来没有
listen()
-ed。
关于android - 发送套接字时出错 [WinError 10061] 无法建立连接,因为目标机器主动拒绝了从 Python 到 Android 的 Socket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55292291/