如何在android设备和python脚本之间建立通信?
我正在尝试创建一个android应用程序,它可以与运行中的python脚本进行通信。两者都连接到同一个网络,我想通过套接字在它们之间发送一些文本。我试过多次尝试,但都没有成功。这是我当前的代码: 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
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
使您的服务器侦听任何地址,但客户端写入此地址没有意义,您必须向客户端提供服务器的实际地址