Цитата:
Сообщение от bifidokk
хм, я и через обычный сокет оборванные сообщения получаю, тут еще и от принимающей стороны всё зависит
|
Сам по себе бинарный сокет работает на tcp, отправленный поток байтов будет гарантированно получен в таком же виде на клиенте.
Стало быть, ошибку надо искать где-то в протоколе чтения данных из сокета, на стороне сервера или клиента, или в неправильном использовании протокола, или в потере соединения.
Использовать нулевой байт для разделения блоков данных - на мой взгляд очень плохая практика. Как-то даже тут на форуме уже кто-то сталкивался с проблемой xml сокета, когда передаваемые данные содержали нулевой байт (вроде как было число float), из-за чего эти сообщения не правильно интерпретировались. (Приходили обрезанные сообщения по нулевому байту)
Если сокет предполагается использовать для передачи самых разных данных, то нужно использовать более универсальные протоколы.
Добавлю, что xml сокет годится только для передачи текстовых данных и никаких других.