![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2015
Сообщений: 73
|
последнее время изучаю сокеты и такой вопрос, в чем различия XMLSocket И Socket?
|
|
|||||
|
Каким образом?
Цитата:
XMLSocket посылает сообщения в виде XML, а Socket - бинарные данные |
|
|||||
|
Регистрация: Jul 2015
Сообщений: 73
|
Цитата:
|
|
|||||
|
Регистрация: Jan 2011
Сообщений: 200
|
|
|
|||||
|
Регистрация: Jul 2015
Сообщений: 73
|
я так понял различия действительно только в типе данных)))
|
|
|||||
|
В xml сокете для разделения сообщений используется нулевой байт. Если вы точно уверены, что ваши сообщения не будут содержать такой байт, то можно использовать и xml сокет. (В противном случае, будете получать обрывки xml сообщений, разрезанные в тех местах, где стоит нулевой байт)
По сути, xml сокет - это просто надстройка над обычным, бинарным сокетом. В нём уже реализован протокол для обмена данными - простое деление по нулевому байту.
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 200
|
Цитата:
|
|
|||||
|
Цитата:
Стало быть, ошибку надо искать где-то в протоколе чтения данных из сокета, на стороне сервера или клиента, или в неправильном использовании протокола, или в потере соединения. Использовать нулевой байт для разделения блоков данных - на мой взгляд очень плохая практика. Как-то даже тут на форуме уже кто-то сталкивался с проблемой xml сокета, когда передаваемые данные содержали нулевой байт (вроде как было число float), из-за чего эти сообщения не правильно интерпретировались. (Приходили обрезанные сообщения по нулевому байту) Если сокет предполагается использовать для передачи самых разных данных, то нужно использовать более универсальные протоколы. Добавлю, что xml сокет годится только для передачи текстовых данных и никаких других.
__________________
Дети не должны знать о своих родителях Последний раз редактировалось Tails; 17.11.2015 в 10:45. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|