Python socket сохранить socket юзера

Рейтинг: 0Ответов: 1Опубликовано: 26.01.2023

Итак у меня есть вот такой простенький код, когда клиент отключается и подключается обратно на сервер уже не приходит никакой запрос как сделать чтобы после отключение юзер сохранялся что ли или что-то в этом роде.

def start_shell():
    host = '127.0.0.1'
    port = 8888
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind((host, port))
    server.listen()
    while True:
        user, adress = server.accept()
        while True:
            data = user.recv(4096)
            if not data:
                continue
            print(data.decode('utf-8'))


if __name__ == '__main__':
    try:
        import socket
    except:
        exit()

    start_shell()

И код клиента

import socket
host = '127.0.0.1'
port = 8888

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((host, port))

while True:
    result = input('>>> ')
    if result == 'exit' or result == 'close':
        break
    client.send(result.encode('utf-8'))

Ответы

▲ 1Принят

Отладил сервер. Причина в зацикливании, когда данных нет.

Вам нужно прерывать цикл через break:

...
    while True:
        user, adress = server.accept()
        while True:
            data = user.recv(4096)
            if not data:
                break
            print(data.decode('utf-8'))