Как реализовать отправку сообщения от клиента серверу через модуль struct
Пишу очень простенький чат на пару человек при помощи python и пытаюсь реализовать отправку сообщения с модулем struct, собеседник должен сначала ввести строку формата в зависимости от значения(численные, строчные и т.п.). Своими силами получается так себе, есть ли какие-нибудь идеи лёгкой реализации?
Сервер:
import socket
import threading
server = socket.socket(
socket.AF_INET,
socket.SOCK_STREAM,
)
server.bind(
("127.0.0.1", 1234)
)
server.listen(5)
print("Server is listening")
users = []
def send_all(data):
for user in users:
user.send(data)
def listen_user(user):
print("Listening user")
while True:
data = user.recv(2048)
print(f"User sent {data}")
send_all(data)
def start_server():
while True:
user_socket, address = server.accept()
print(f"User <{address[0]}> connected!")
users.append(user_socket)
listen_accepted_user = threading.Thread(
target=listen_user,
args=(user_socket,)
)
listen_accepted_user.start()
if __name__ == '__main__':
start_server()
Клиент:
import socket
from threading import Thread
client = socket.socket(
socket.AF_INET,
socket.SOCK_STREAM,
)
client.connect(
("127.0.0.1", 9090)
)
def listen_server():
while True:
data = client.recv(2048)
print(data.decode("utf-8"))
def send_server():
listen_thread = Thread(target=listen_server)
listen_thread.start()
while True:
client.send(input(":::").encode("utf-8"))
if __name__ == '__main__':
send_server()