繁体   English   中英

套接字将Java(android)写入python

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM