0 / 0 / 0
Регистрация: 12.12.2019
Сообщений: 26
|
||||||
1 | ||||||
Проблемы в работе эхо-сервера07.04.2023, 16:09. Показов 1085. Ответов 1
Добрый день, форумчане! Решил освоить асинхронное программирование (если интересно, иду по книге Asyncio и конкурентное программирование на Python под авторством Мэттью Фаулера), и в качестве примера работы неблокирующих сокетов дан пример кода простого эхо-сервера.
Вот его код:
1) В книге советуют использовать приложение PuTTY, чтобы запустить клиент telnet. В этой проге я совсем ничего не понимаю В графе host name (or IP address) я уже что не писал. Варианты 127.0.0.1 и 127.0.0.1:8000. Оба варианта кончаются одним. Терминал открывается и почти сразу возникает ошибка Network error: Connection refused. После я попробовал изменить порт в строке server_address = ('127.0.0.1', 8000) на 23, т.е. server_address = ('127.0.0.1', 23) и все вроде заработало, клиент получает дублированное сообщение (хоть и заканчивается с ошибкой, не знаю, может так и надо). Но меня начало беспокоить что-то другое. В книге написано, что при написании в клиенте testing123 должен быть результат в выводе Python: Получен запрос на подключение от ('127.0.0.1', 50192)! Получены данные: b'te'! Получены данные: b'st'! Получены данные: b'in'! Получены данные: b'g1'! Получены данные: b'23'! Получены данные: b'\r\n'! Все данные: b'testing123\r\n' Но у меня при открытии клиента сначала в буфер скидываются непонятные байты, а уже после нужный результат: Получен запрос на подключение от ('127.0.0.1', 50192)! Получены данные: b'\xff\xfb'! Получены данные: b'\x1f\xff'! Получены данные: b'\xfb '! Получены данные: b'\xff\xfb'! Получены данные: b'\x18\xff'! Получены данные: b"\xfb'"! Получены данные: b'\xff\xfd'! Получены данные: b'\x01\xff'! Получены данные: b'\xfb\x03'! Получены данные: b'\xff\xfd'! Получены данные: b'\x03'! Получены данные: b'te'! Получены данные: b'st'! Получены данные: b'in'! Получены данные: b'g1'! Получены данные: b'23'! Получены данные: b'\r\n'! Все данные: b"\xff\xfb\x1f\xff\xfb \xff\xfb\x18\xff\xfb'\xff\xfd\x01\xff\xfb\x03\xff\xfd\x03testing123\r\n" Вроде бы ничего, но никак не могу понять, что это за байты. Пытался добавить код для декодировки, но выкидывает ошибку. строка: print(buffer.decode('utf-8')) Результат: Получен запрос на подключение от ('127.0.0.1', 50231)! Получены данные: b'\xff\xfb'! Получены данные: b'\x1f\xff'! Получены данные: b'\xfb '! Получены данные: b'\xff\xfb'! Получены данные: b'\x18\xff'! Получены данные: b"\xfb'"! Получены данные: b'\xff\xfd'! Получены данные: b'\x01\xff'! Получены данные: b'\xfb\x03'! Получены данные: b'\xff\xfd'! Получены данные: b'\x03'! Получены данные: b'\r\n'! Все данные: b"\xff\xfb\x1f\xff\xfb \xff\xfb\x18\xff\xfb'\xff\xfd\x01\xff\xfb\x03\xff\xfd\x03\r\n" Traceback (most recent call last): File "D:\github\studeing_asyncio\main.py", line 19, in <module> print(buffer.decode('utf-8')) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte Наконец вопрос: Что это за байты в буфере?
0
|
07.04.2023, 16:09 | |
Ответы с готовыми решениями:
1
Проблемы с написанием локального эхо-Сервера в QT на macOS Создание эхо сервера Создание эхо-сервера Проблемы со звуком. Эхо! Клиент для ЭХО сервера в линуксе |
3564 / 2711 / 347
Регистрация: 11.03.2009
Сообщений: 6,241
|
|
08.04.2023, 11:55 | 2 |
Сообщение было отмечено dj_jd как решение
Решение
Какой ошибка, "Process finished with exit code 0"? Это шатное завершение программы.
По коду обработка идет, пока не приедет новая строка (в клиенте не нажмем клавишу Enter), после чего программа завершается. Клиент договаривается с сервером о параметрах связи. https://ru.wikipedia.org/wiki/Telnet смотрите раздел "Структура команд Telnet"
1
|
08.04.2023, 11:55 | |
08.04.2023, 11:55 | |
Помогаю со студенческими работами здесь
2
VS c++ sockets (errors), Пример реализации TCP эхо-сервера Комментарии к коду эхо-клиент/эхо-сервер Ошибка "Соединение не установлено" при реализации эхо сервера Тормоза в работе HTTP сервера Зависание сервера при работе 1С Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |