Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по сокетам / 7 сообщений из 7, страница 1 из 1
05.05.2008, 21:35
    #35295580
D-TAU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам
Я Использую асинхронные сокеты. Клиент серверу передаёт некокоторые данные которые формирует как {команда данные r\n\}, То есть заканчивается стандартным флагом перенос каретки, конец строки.
Возможно ли такая ситуация, что переданная {команда данные r\n\}, прийдёт на асинхронные(хотя не имеет значения) по частям, припустим: {команда }потом {данные r\n\} ?...то есть я сначала получу {команду} с потока а потом {данные r\n\} (или даже на более мелкие сообщения), или целостность преданного сообщения контролируется самим протоколом ?

Знаю что ситуация когда передаёшь подряд несколько сообщения, а они приходят на конечный сокет в одном сообщении возможна.

PS Меня не интересует уровень пакетов, только уровень ссобщений который передаются/принимаются комадами send/resive
...
Рейтинг: 0 / 0
05.05.2008, 21:46
    #35295591
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам
Да, сообщение может прийти по частям (TCP).
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
05.05.2008, 22:05
    #35295610
smskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам
Какой протокол используется? Если ТСР, например, то возможно по частям
...
Рейтинг: 0 / 0
06.05.2008, 20:18
    #35298060
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам
D-TAU...или целостность преданного сообщения контролируется самим протоколом ?...только уровень ссобщений который передаются/принимаются комадами send/resive

судя по поведению - уровень протокола TCP/IP ?
Да, это потоковый протокол. Т.е. клиенту предоставляется двунаправленная труба и всё. Целоснтность передачи и обязательность доставки (т.е. сто пудово ничего не пропадёт) - ГАРАНТИРУЕТСЯ самим протоколом. А вот гранулярность данных - об этом в протоколе НИЧЕГО НЕ сказано. Т.е. (в зависимости от тайм аутов и ситуации в сети!) Вы можете получить именно такую картину как вы описали...т.е. прийти сразу кучей несколько посылок удалённого клиента, либо прийти половина от сообщения и потом дослаться кусочек ышо с другим началом данных... Можно видеть под отладчиком гранулярность передачи, но(!) и это ОЧЕНЬ ВАЖНО(!) нужно понимать что при уменьшении времени на обработку данных картина может резко измениться. Так например эти проблемы часто возникют при ударном тестировании системы, когда программист этих нюансов не учёл...увы это одна из самых распространённых ошибок юзанья TCP слоя...

при использовании данного протокола надо представлять его как потоки на ввод и на вывод...вот собственно и всё...

с уважением
(круглый)
...
Рейтинг: 0 / 0
07.05.2008, 14:19
    #35299827
D-TAU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам
И ещё один вопрос: Как определить свободный порт в системе, желательно на C#, или есть какаято Win API функция ?
...
Рейтинг: 0 / 0
07.05.2008, 14:33
    #35299892
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам
попробовать сделать порту bind(), если нет ошибки -не занят, если что-то вроде EINVAL - то используется
...
Рейтинг: 0 / 0
07.05.2008, 16:21
    #35300347
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам
--null--попробовать сделать порту bind(), если нет ошибки -не занят, если что-то вроде EINVAL - то используется
плохой способ, в случае, если кто-то уже прибиндился к конкретному адресу, ошибки не будет.
на c# - просто создайте IPEndPoint(0,0) После Bind - номер порта, назначенный системой будет в LocalEndPoint сокета
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по сокетам / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]