|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.04.2010, 23:32 | #1 |
Пользователь
Регистрация: 25.10.2009
Сообщений: 92
|
send/recv: размер сообщения
Проблема такая: передающая сторона отсылает пакет размером 2050 байт, а принимающая сторона получает только 1460, остальная часть сообщения доходит во второй раз. Сокеты потоковые. Передаются сообщения по локальной сети, причем такая ситуация происходит через раз: иногда без ошибок принимается сразу 2050, в режиме отладки с брэйкпоинтами всегда верно работает. В чем может быть проблема? думаю, это может быть связано с mtu и фрагментацией сообщения, но за это же должен отвечать транспортный уровень, а не я... Подскажите решение, кто с этим сталкивался...
|
23.04.2010, 09:37 | #2 | |
Москоу
Форумчанин
Регистрация: 29.01.2008
Сообщений: 138
|
Я делал так:
Цитата:
|
|
23.04.2010, 11:01 | #3 |
Пользователь
Регистрация: 25.10.2009
Сообщений: 92
|
send тоже в цикле? у меня почему-то при повторном вызове recv глюки начинаются нереальные, так что основной поток завешивается, хотя recv срабатывает нормально
|
23.04.2010, 11:53 | #4 |
Москоу
Форумчанин
Регистрация: 29.01.2008
Сообщений: 138
|
send один раз посылаю, переменную типа type TBuf = array [0..65535] of char;
|
23.04.2010, 19:00 | #5 |
Пользователь
Регистрация: 25.10.2009
Сообщений: 92
|
Все равно мои сообщения объединяются до размера 1460, получается так что приходит первый пакет размером 1460, а следующий такой пакет не успевает прийти и recv во второй раз получает меньше данных, чем нужно... Бред какой-то, пришлось вставить проверку на размер принятых данных и повторный вызов recv (уже третий) при необходимости. Причем что странно, если клиент и сервер поменять местами, то работает все отлично без потерь, может, еще с конкретным железом это связано...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MPI: send и recv | cheparamba | Общие вопросы C/C++ | 0 | 09.03.2010 05:48 |
recv() | Артэс | C/C++ Сетевое программирование | 7 | 15.01.2010 14:51 |
Mail send | MAcK | Общие вопросы .NET | 4 | 01.10.2008 18:12 |
WinSock (send, recv) | AidarBik | Работа с сетью в Delphi | 1 | 27.07.2008 15:22 |
Send Message | _SERGEYX_ | Работа с сетью в Delphi | 5 | 30.10.2007 06:38 |