我正在尝试学习套接字编程,目前有以下server
和client
代码,但问题是服务器和/或客户端不能同时发送和接收消息,它们轮流发送和接收消息
我看过下面的例子,但答案似乎不能解决问题,或者我理解错了
Python Socket - Send/Receive messages at the same time
服务器
import socket
import threading
s = socket.socket()
host = socket.gethostname()
port = 8080
s.bind((host, port))
s.listen(1)
print("Waiting for connections")
conn, addr = s.accept()
print("Client has connected")
conn.send("Welcome to the server".encode())
def recv_msg():
while True:
recv_msg = conn.recv(1024)
if not recv_msg:
sys.exit(0)
recv_msg = recv_msg.decode()
print(recv_msg)
def send_msg():
send_msg = input(str("Enter message: "))
send_msg = send_msg.encode()
conn.send(send_msg)
print("message sent")
while True:
send_msg()
t = threading.Thread(target=recv_msg)
t.start()
客户
import socket
import threading
s = socket.socket()
host = socket.gethostname()
port = 8080
s.connect((host, port))
print("Connected to the server")
message = s.recv(1024)
message = message.decode()
print(message)
def recv_msg():
while True:
recv_msg = s.recv(1024)
if not recv_msg:
sys.exit(0)
recv_msg = recv_msg.decode()
print(recv_msg)
def send_msg():
send_msg = input(str("Enter message: "))
send_msg = send_msg.encode()
s.send(send_msg)
print("Message sent")
while True:
send_msg()
t = threading.Thread(target=recv_msg)
t.start()
我正在尝试创建一个类似Whatsapp/Imessage等的聊天应用程序(使用kivy),我还没有找到关于如何创建聊天室的教程(我看到的所有教程都是关于创建聊天室的),因此如果有人看到过,我将不胜感激
在客户机和服务器中,在运行循环之前必须启动线程
while True: send_msg()
编辑:
server.py
client.py
相关问题 更多 >
编程相关推荐