Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подскажите с send, подскажите с send 
:(
    Опции темы
hawk3500
Дата 17.2.2011, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 6.2.2009

Репутация: нет
Всего: 2



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

.............
int a1,a2,a3,a4,a5;
a1=send(ClientSocket,"test",4,0);
a2=send(ClientSocket,"test",4,0);
a3=send(ClientSocket,"test",4,0);
a4=send(ClientSocket,"test",4,0);
a5=send(ClientSocket,"test",4,0);


то клиент принимает только несколько сообщений, пропуская часть остальных.
У меня принимаеться первые два ....а остальные не принимаються и клиент дальше ждёт на recv..........
 recv вычитывает по 4 байта, так что за один проход считываеться всё сообщение целиком.
Подскажите пожалуйста, в чём моя ошибка?
Может мне стоит перед отправкой выполнять select(..) и ждать пока сокет выйдет из состояния отправки.....?
Заранее благодарен.
С уважением hawk;
--------------------
воин dzen'a
PM MAIL   Вверх
Олег2005
Дата 20.2.2011, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Где располагаются клиент и сервер?
На одной машине или разных в сети?
PM MAIL WWW MSN   Вверх
hawk3500
Дата 20.2.2011, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 6.2.2009

Репутация: нет
Всего: 2



На одном.
Решл поблему-у меня в коде ошибка была.
Извеняюсь.

Олег2005 вот здесь http://forum.vingrad.ru/forum/topic-317491...disconnect.html
Вы говорили что для определения разрыва нужно использовать TCP_KEEPALIVE.
Я так и не могу понять как это использовать.
Если у Вас есть возможность не могли бы Вы привести пример как отследить FD_CLOSE используя TCP_KEEPALIVE?
--------------------
воин dzen'a
PM MAIL   Вверх
Олег2005
Дата 21.2.2011, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Увы, у меня примера такого нет.
В сети есть примерно вот
 такого типа

Это сообщение отредактировал(а) Олег2005 - 21.2.2011, 00:29
PM MAIL WWW MSN   Вверх
hawk3500
Дата 21.2.2011, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 6.2.2009

Репутация: нет
Всего: 2



Спасибо за инфорвацию.

--------------------
воин dzen'a
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.