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

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

Определить режим работы сокета: блок. или неблок. в Winsock [D7, WinXP]


DVM ©   (2009-05-08 21:35:00) 

Подскажите, что-то никак не могу понять (найти функцию в Winsock), с помощью которой можно было бы определить в каком режиме (блокирующем или нет) находится сокет. Функции fcntl() в Winsock по-видимому нет. Как это сделать?


Сергей М.   (2009-05-13 13:11:00) [1]


> Slym ©   (13.05.09 12:38) [3]


Цитата из справки:

If WSAAsyncSelect or WSAEventSelect has been issued on a socket, then any attempt to use ioctlsocket to set the socket back to blocking mode will fail with WSAEINVAL

А если WSAAsyncSelect or WSAEventSelect has NOTbeen issued ?

)


Slym   (2009-05-13 12:38:00) [2]

if ioctlsocket(SocketHandle,FIONBIO,0)=SOCKET_ERROR then
begin
if WSAGetLastError=WSAEINVAL then НЕБЛОКИРУЮЩИЙ
end;


DVM   (2009-05-09 11:15:00) [3]


> А собссно зачем это может понадобиться ?

Теперь уже чисто академический интерес. Практической пользы от данной функции скорее всего и нет, т.к. если сокет "мой", то я всегда его могу перевести в нужный режим и все дела. Потому ее наверное и нету. Хотя из чисто информационных целей могли бы и оставить.


> Я так понимаю, хэндл сокета достался тебе от кого-то "по
> наследству" ибезо всяких "документов" ?

Да. Именно это и стало первоначальной причиной поиска такой функции.


Сергей М.   (2009-05-09 10:32:00) [4]

Да, пожалуй, и нет такой ..
А собссно зачем это может понадобиться ?
Я так понимаю, хэндл сокета достался тебе от кого-то "по наследству" ибезо всяких "документов" ?


Наверх

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