我正在制作一个服务器客户端系统,客户端(android用户)从该服务器客户端系统向服务器(python套接字)发送消息。我已经在自己的级别尝试过此方法,但是它不起作用。代码如下所示。
任何帮助都被批准
套接字服务器端
import socket
import threading
import pyaudio
PORT = 7800
HEADER = 64
FORMAT= "utf-8 "
DISCONNECT_MSG="!DISCONNECTED"
SERVER=socket.gethostbyname(socket.gethostname())
ADDR = (SERVER,PORT)
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(ADDR)
connection_list = []
def handle_clinet(conn,addr):
print(f"[NEW CONNECTION]{addr} Connected")
CONNECTED = True
while CONNECTED:
msg_length = conn.recv(HEADER).decode(FORMAT)
if msg_length:
msg_length=int(msg_length)
msg = conn.recv(msg_length).decode(FORMAT)
if msg == DISCONNECT_MSG:
CONNECTED = False
if msg == "Disconnect":
conn.close()
CONNECTED = False
print("Dissconnected From the User...")
else:
print(msg)
def start():
server.listen()
while True:
conn,addr = server.accept()
thread = threading.Thread(target=handle_clinet,args=(conn,addr))
thread.start()
print(f"[ACTIVE CONNECTIONS] {threading.active_count() -1}")
connection_list.append(addr)
print(connection_list)
print("[Starting] the server...")
start()
客户端
public class send extends AsyncTask<String,Void,Void> {
String message;
Socket socket;
PrintWriter pw ;
String ip = "198.168.**.***";
@Override
protected Void doInBackground(String... strings) {
try{
socket = new Socket(ip,7800);
pw= new PrintWriter(socket.getOutputStream());
pw.write("Hello World");
pw.flush();
pw.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
发送我使用的消息
val sendcode = send()
message=iptextview.text.toString()
sendcode.execute(message)
如果还提出了关于该主题的其他建议。