Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发送套接字时出错[WinError 10061]无法建立连接,因为目标计算机主动拒绝从Python到Android的套接字连接_Android_Python_Sockets - Fatal编程技术网

发送套接字时出错[WinError 10061]无法建立连接,因为目标计算机主动拒绝从Python到Android的套接字连接

发送套接字时出错[WinError 10061]无法建立连接,因为目标计算机主动拒绝从Python到Android的套接字连接,android,python,sockets,Android,Python,Sockets,我正在从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时,函数使用不同的套接字和端

我正在从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((主机、端口))
下面是我发送数据包的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)
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 studio代码,用于接收数据包:

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)
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防火墙错误,但我不知道如何修复它。提前感谢。

  • 这不是安卓防火墙错误
  • 您的代码以一种荒谬的方式混合了客户机和服务器逻辑
  • 服务器(Android)应该
    listen()
    accept()
  • 客户端(Python)应该
    connect()
    。它不应该
    listen()
“目标机器主动拒绝”表示客户端成功访问了服务器的网络接口,但服务器操作系统说,“没有人打开了7801端口,因此我无法将您连接到该端口。”Android端从未打开7801,因为它从未
listen()
-ed