Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   XMLSocket vs Socket (http://www.flasher.ru/forum/showthread.php?t=211824)

tattori 15.11.2015 12:05

XMLSocket vs Socket
 
последнее время изучаю сокеты и такой вопрос, в чем различия XMLSocket И Socket?

caseyryan 15.11.2015 14:30

Цитата:

Сообщение от tattori (Сообщение 1189026)
последнее время изучаю сокеты

Каким образом?
Цитата:

в чем различия XMLSocket И Socket?
Различия понятны сразу, стоит только почитать о первом и втором в документации. Да и из названия понятно
XMLSocket посылает сообщения в виде XML, а Socket - бинарные данные

tattori 15.11.2015 14:59

Цитата:

Каким образом?
сначала изучал простой сокет в связке с php , но php как то не понравился и начал изучать что то другое для сервака, наткнулся на node.js и он по-моему крут)))) и задался вопросом по клиентской части, какой сокет лучше, разница лишь в типе передаваемых данных? документацию прочел, хочется узнать мнение людей которые работают с сокетом

bifidokk 16.11.2015 08:20

http://www.flasher.ru/forum/showthread.php?t=141282

tattori 16.11.2015 13:43

я так понял различия действительно только в типе данных)))

Tails 16.11.2015 15:10

В xml сокете для разделения сообщений используется нулевой байт. Если вы точно уверены, что ваши сообщения не будут содержать такой байт, то можно использовать и xml сокет. (В противном случае, будете получать обрывки xml сообщений, разрезанные в тех местах, где стоит нулевой байт)

По сути, xml сокет - это просто надстройка над обычным, бинарным сокетом. В нём уже реализован протокол для обмена данными - простое деление по нулевому байту.

bifidokk 17.11.2015 08:45

Цитата:

Сообщение от Tails (Сообщение 1189053)
В xml сокете для разделения сообщений используется нулевой байт. Если вы точно уверены, что ваши сообщения не будут содержать такой байт, то можно использовать и xml сокет. (В противном случае, будете получать обрывки xml сообщений, разрезанные в тех местах, где стоит нулевой байт)

По сути, xml сокет - это просто надстройка над обычным, бинарным сокетом. В нём уже реализован протокол для обмена данными - простое деление по нулевому байту.

хм, я и через обычный сокет оборванные сообщения получаю, тут еще и от принимающей стороны всё зависит

Tails 17.11.2015 10:22

Цитата:

Сообщение от bifidokk (Сообщение 1189066)
хм, я и через обычный сокет оборванные сообщения получаю, тут еще и от принимающей стороны всё зависит

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

Использовать нулевой байт для разделения блоков данных - на мой взгляд очень плохая практика. Как-то даже тут на форуме уже кто-то сталкивался с проблемой xml сокета, когда передаваемые данные содержали нулевой байт (вроде как было число float), из-за чего эти сообщения не правильно интерпретировались. (Приходили обрезанные сообщения по нулевому байту)

Если сокет предполагается использовать для передачи самых разных данных, то нужно использовать более универсальные протоколы.
Добавлю, что xml сокет годится только для передачи текстовых данных и никаких других.


Часовой пояс GMT +4, время: 07:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.