Я пытаюсь написать код для чата между двумя системами, код работает нормально, но я не могу отправлять и получать сообщения одновременно, т. Е. Когда клиент или сервер находятся в режиме отправки, он не может получать сообщения и когда он получаетВ режиме он не может отправлять сообщения, и если я набираю два-три сообщения и нажимаю клавишу ввода один за другим, то другой компьютер получает сообщения одно за другим, когда дело доходит до режима приема
вот мой код
сервер
def reply(sc):
data=sc.recv(1024)
text=data.decode('utf-8')
print(text)
def send(sc):
i=input('enter message:').encode('utf-8')
sc.send(i)
def server(hn,port):
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind((hn,port))
s.listen(1)
print('lisening at {}'.format(s.getsockname()))
sc,socketname=s.accept()
while True:
try:
threading.Thread(target=reply(sc)).start()
threading.Thread(target=send(sc)).start()
except KeyboardInterrupt:
sc.close()
клиент
def client(host,port):
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((host,port))
print('client has been assigned address',sock.getsockname())
print('welcome to chatting session')
while True:
try:
threading.Thread(target=send(sock)).start()
threading.Thread(target=reply(sock)).start()
except KeyboardInterrupt:
sock.close()
def reply(sock):
reply=sock.recv(1024)
if reply:
print('message:',reply.decode())
else:
sys.exit()
def send(sc):
m=input('enter message:').encode('utf-8')
sc.sendall(m)
как мне заставить мой код работать одновременно при отправке и получении?