Я новичок в протоколе TCP/IP и хотел бы создать сервер для чата на C++.Поддерживает ли TCP непечатаемые символы?
На данный момент я решил начать все свои передачи с персонажа, чтобы рассказать, что дальше (запрос на вход, сообщение для публикации, имя пользователя клиента, ...).
Итак, я использую такие значения, как 0x01, 0x02, ... для того, что связано с логином, запросом информации, ... и 0x10 для сообщений.
Безнадежно, когда я пытаюсь подключиться к своему серверу с другой созданной мной программой, я получаю одну передачу с сервера, которая начинается с 0x01 (так что все по-прежнему в порядке), но затем, когда я отвечаю чем-то, начинающимся с 0x03 , сервер получает его только тогда, когда я убиваю клиента ...
Я думаю, что это функция выбора, которая не говорит, что есть что прочитать.
Это нормально?
И если да, следует ли заменить эти значения на значения, которые можно распечатать и не имеет специального значения?
TCP работает с байтами, поэтому значения 0-255 независимо от того, могут ли они печататься из непечатаемых символов. Выберите совершенно другой подход. Поместите все в одно сообщение с заголовком. –
Да, TCP вполне доволен двоичными данными. Укажите соответствующие разделы как вашего клиента, так и сервера/ –
@ ErikŠťastný Но выбирает также работает с 0-255 значениями? – dido22