Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinSock [D5, D7, Win2k]


Serge_T ©   (2003-02-01 23:57:00) 

Делая лабы возник следующий вопрос: есть клиент и сервер. Использую блокирующие сокеты. Клиент посылает серверу некоторую строку используя send(), сервер принимает recv(Sock, buf, bufsize, MSG_PEEK). При этом возникает проблема: при втором вызове recv() не блокируеся и возвращается таже строка что и первый раз. В хелпе написано что recv() при MSG_PEEK не удаляет данные из входной очереди. Продскажите плз, как удалить эту информацию из очереди? Причём в лабаратории все работает нормально. Может ли это быть из-за того что у меня 7 Delphi а в лаборатории 5? Винды 2000 и у меня и в лаборатории. Заранее спасибо.


Digitman   (2003-02-03 08:36:00) [1]

непонятно, зачем тебе MSG_PEEK-опция ?

просто

Result := recv(Sock, Buf, BufSize, 0);


mrcat   (2003-02-02 15:57:00) [2]

Serge_T (02.02.03 02:03)
...
почему в лаборатории с MSG_PEEK работает.
...


Версия Dx тут не при чем, это ж api. А вот Вы можете гарантировать, что буффер "в лаборатории" не "очищал" кто-нибудь другой? ;)


Serge_T   (2003-02-02 02:03:00) [3]

Спасибо. А всё-таки интерестно почему в лаборатории с MSG_PEEK работает.


mrcat   (2003-02-02 00:14:00) [4]

MSG_PEEK

Peek at the incoming data. The data is copied into the buffer but is not removed from the input queue.

Юзайте 0.


Наверх

Титульная страница Поиск, карта сайта Написать письмо