Я выполнил некоторые инструкции, чтобы создать приложение для чата в python с использованием сокета, и оно работает нормально. Однако из-за способа написания вы можете отправлять сообщения только тогда, когда сообщение было отправлено первым. По сути, вы не можете отправлять несколько сообщений одновременно. Тем не менее, я действительно хотел бы включить это. Человек, который сделал учебник, сказал, что это может быть достигнуто с помощью многопоточности, но не стал вдаваться в подробности. Может кто-нибудь объяснить, что они имеют в виду? Спасибо. Вот код стороны сервера:
import socket
import sys
import time
s = socket.socket()
host = socket.gethostname()
port = 8080
s.bind((host,port))
print("\n")
print(host)
print("\n")
name = input("Please enter your username: ")
s.listen(1)
print("\n")
print("Waiting for incoming connections")
print("\n")
conn, addr = s.accept()
print("Connected")
s_name = conn.recv(1024)
s_name = s_name.decode()
print("\n")
print(s_name, " has connected to the server")
print("\n")
conn.send(name.encode())
while 1:
message = input(">> ")
conn.send(message.encode())
message = conn.recv(1024)
message = message.decode()
print(message)
И код стороны клиента:
import socket
import sys
import time
s = socket.socket()
print("\n")
host = input(str("Please enter host name: "))
print("\n")
name = input("Please enter your username: ")
port = 8080
print("\n")
print("Connecting to ", host, "at port", port)
print("\n")
s.connect((host,port))
print("Connected")
s.send(name.encode())
s_name = s.recv(1024)
s_name = s_name.decode()
print("\n")
print(s_name, " has joined the chat")
while 1:
message = s.recv(1024)
message = message.decode()
print(message)
message = input(">> ")
s.send(message.encode())
Любая помощь будет принята с благодарностью.