Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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
如何在android设备和python脚本之间建立通信?_Android_Python_Sockets - Fatal编程技术网

如何在android设备和python脚本之间建立通信?

如何在android设备和python脚本之间建立通信?,android,python,sockets,Android,Python,Sockets,我正在尝试创建一个android应用程序,它可以与运行中的python脚本进行通信。两者都连接到同一个网络,我想通过套接字在它们之间发送一些文本。我试过多次尝试,但都没有成功。这是我当前的代码: python部分: import socket import time #Defines Server Values listensocket = socket.socket() Port = 8000 maxConnections = 999 IP = socket.gethostname() #G

我正在尝试创建一个android应用程序,它可以与运行中的python脚本进行通信。两者都连接到同一个网络,我想通过套接字在它们之间发送一些文本。我试过多次尝试,但都没有成功。这是我当前的代码:

python部分:

import socket
import time

#Defines Server Values
listensocket = socket.socket()
Port = 8000
maxConnections = 999
IP = socket.gethostname() #Gets Hostname Of Current Macheine

listensocket.bind(("0.0.0.0",Port))

#Opens Server
listensocket.listen(maxConnections)
print("Server started at " + IP + " on port " + str(Port))

#Accepts Incomming Connection
(clientsocket, address) = listensocket.accept()
print("New connection made!")

running = True

#Main
while running:
    message = clientsocket.recv(1024).decode() #Receives Message
    if not message == "":
        print(message)
    # closes Server If Message Is Nothing (Client Terminated)
    else:
        clientsocket.close()
        running = False
安卓部分:

class send extends AsyncTask<Void,Void,Void> {
    Socket s;
    PrintWriter pw;
    @Override
    protected Void doInBackground(Void...params){
        try {
            s = new Socket("0.0.0.0",8000);
            pw = new PrintWriter(s.getOutputStream());
            pw.write(message);
            pw.flush();
            pw.close();
            s.close();
        } catch (UnknownHostException e) {
            System.out.println("Fail");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("Fail");
            e.printStackTrace();
        }
        return null;
    }
}
类发送扩展异步任务{
插座;
印刷作家;
@凌驾
受保护的Void doInBackground(Void…参数){
试一试{
s=新插座(“0.0.0.0”,8000);
pw=新的PrintWriter(s.getOutputStream());
写(信息);
pw.flush();
关闭();
s、 close();
}捕获(未知后异常e){
系统输出打印项次(“失败”);
e、 printStackTrace();
}捕获(IOE异常){
系统输出打印项次(“失败”);
e、 printStackTrace();
}
返回null;
}
}
来自:

0.0.0.0是一个不可路由的元地址,用于指定无效、未知或不适用的目标(“无特定地址”占位符)

在服务器上下文中,0.0.0.0表示本地计算机上的所有IPv4地址。如果主机有两个IP地址,192.168.1.1和10.1.2.1,并且主机上运行的服务器侦听0.0.0.0,则可以在这两个IP上访问该主机

简而言之,您可以在服务器端使用
0.0.0.0
使您的服务器侦听任何地址,但客户端写入此地址没有意义,您必须向客户端提供服务器的实际地址。

来自:

0.0.0.0是一个不可路由的元地址,用于指定无效、未知或不适用的目标(“无特定地址”占位符)

在服务器上下文中,0.0.0.0表示本地计算机上的所有IPv4地址。如果主机有两个IP地址,192.168.1.1和10.1.2.1,并且主机上运行的服务器侦听0.0.0.0,则可以在这两个IP上访问该主机

简而言之,您可以在服务器端使用
0.0.0.0
使您的服务器侦听任何地址,但客户端写入此地址没有意义,您必须向客户端提供服务器的实际地址