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

标签 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 函数使用不同的套接字和不同的端口。此处出现错误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 防火墙错误,但我不知道如何解决这个问题。提前致谢。

最佳答案

  • 这不是 Android 防火墙错误。
  • 您的代码以荒谬的方式将客户端和服务器逻辑混合在一起。
  • 服务器 (Android) 应该 listen()accept() .
  • 客户端 (Python) 应该 connect() .它不应该 listen() .

  • “目标机主动拒绝”表示客户端成功到达服务器的网络接口(interface),但是服务器操作系统却说“没有人打开7801端口,所以我没有什么可以连接你的。” Android端从来没有打开7801,因为它从来没有listen() -ed。

    关于android - 发送套接字时出错 [WinError 10061] 无法建立连接,因为目标机器主动拒绝了从 Python 到 Android 的 Socket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55292291/

    相关文章:

    android - 已弃用的 HTTP 类 Android lollipop 5.1

    java - 在android中有效清理opengl动画?

    python - 如何将双字符异常与Python正则表达式匹配?

    python - TensorFlow 批归一化实现之间有什么区别?

    java - 在Java中确定多播数据包的剩余TTL

    Java - Android Studio - .xml 文件不存在错误

    android - ApplicationInfo 与 PackageInfo 与 ResolveInfo

    python - 如何使用 AWS Python SDK Boto 3 等待 Elastic Beanstalk 事件

    c++ - 如何使用 RAII 对套接字建模

    c - 如何将 long long int 的数字放入 long long int 数组