![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Mad
Опять начинается ? ![]() Было же уже обсуждение этого вопроса ![]() |
|||
|
||||
Mad |
|
|||
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 3 Всего: 19 |
En_t_end
скинь сылку посмотреть |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
||||
|
||||
bel_nikita |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 1 Всего: 47 |
Mad
качаем и читаем: Йон Снейдер - Эффективное программирование TCP/IP |
||||
|
|||||
Mad |
|
||||||
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 3 Всего: 19 |
bel_nikita
И как по твоему эти две фразы стыкуютья ? ![]()
Это верно, поэтому я и привел примеры методов чтения нужного кол-ва байтов с ожиданием полного получения, но это не изменения порядка следования Поясню отправляем буффер (1,2,3,4,5,6} при получении, могут быть такие варианты: {1,2,3,4,5,6} {1,2}{3,4,5}{6} {1,2,3,4}{5,6} и т.д но никогда не будет {1,2}{6}{3,4,5} или подобного Это сообщение отредактировал(а) Mad - 17.10.2005, 14:16 |
||||||
|
|||||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 1 Всего: 47 |
Mad
![]() Ну, лопухнулся немного ![]() ![]() ![]() |
|||
|
||||
Mad |
|
||||
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 3 Всего: 19 |
ты пытаешся послать SizeMess байт ![]() для такого протокола код будет такой :
|
||||
|
|||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Mad
А.... теперь понятно, то есть здесь надо учитывать, что раз SizeMess - u_long - значит надо и послать размер сообщения размером с sizeof u_long. А я пытался преобразовывать размер к char*, а затем уже отсылать размер, опять же ошибочно забывая о том, что каждый символ - не есть один байт. |
|||
|
||||
Mad |
|
|||
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 3 Всего: 19 |
Несовсем так, если ты посмотриш мой код, то увидиш 1. u_long парасылаеться как 4 байта в бинарном виде (нет смысла приобразовавыть его в текст) 2. по приему его клиент выделяет буффер по данные, с укзанным (в занчении u_long) размером 3. идет непосредственно пересылка данных. в данном слечае совсем не важно что именно ты пересылаеш, текст или бинарные данные кстати, в случае с текстом, можно упростить алгоритм: отправитель - отсылает текстовый буфер вместе с завернающим 0x0 байтом получатель - читает поток побайтно, пока не встретит байт 0x0 ![]() |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Mad
Я как не пробывал, не хочет отсылаться этот конечный байт ![]() ЗЫ спасибо! Вопросы у меня ещё есть, как сформулирую их получше - выложу. Добавлено @ 10:37 Хотя нет... все таки можно и нужно отправлять нуль-терминатор. Просто нужно отправлять (lstrlen(message)+1)*sizeof(char) - столько байт |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |