цитата из МСДНа:
The WSAAsyncSelect function automatically sets socket s to nonblocking mode, regardless of the value of lEvent. See the ioctlsocket functions for information on how to set the nonblocking socket back to blocking mode.
Если не очень тяжело, объясните, как с помощью ioctlsocket (в winsock) сделать неблокирующие сокеты, в смысле как разблокировать сокет с помощью этой функции я знаю, но как с помощью select в последствии проверять статус, что-то не очень понятно :(
Кстати есть ли принципиальная разница между асинхронными сокетами(WSA) и неблокирующими......... Thanks
Пример на WSAAsyncSelect28.04.03 10:38 Автор: ukv Статус: Незарегистрированный пользователь
// Module Name: asyncselect.cpp
//
// Description:
//
// This sample illustrates how to develop a simple echo server Winsock
// application using the WSAAsyncSelect() I/O model. This sample is
// implemented as a console-style application (to reduce the programming
// complexity of writing a real Windows application) and simply prints
// messages when connections are established and removed from the server.
// The application listens for TCP connections on port 5150 and accepts them
// as they arrive. When this application receives data from a client, it
// simply echos (this is why we call it an echo server) the data back in
// it's original form until the client closes the connection.
//
// Since the WSAAsyncSelect I/O model requires an application to manage
// window messages when network event occur, this application creates
// a window for the I/O model only. The window stays hidden during the
// entire execution of this application.
//
// Compile:
//
// cl -o asyncselect asyncselect.cpp ws2_32.lib user32.lib gdi32.lib
//
цитата из МСДНа:
The WSAAsyncSelect function automatically sets socket s to nonblocking mode, regardless of the value of lEvent. See the ioctlsocket functions for information on how to set the nonblocking socket back to blocking mode.
а как тогда правильно?07.05.03 12:34 Автор: L Статус: Незарегистрированный пользователь
> Асинхронные сокеты говоришь? Не слышал про такие. Теоретик? Или жажда правды обуяла? На MSDN это весьма расхожее словосочетание для обозначения асинхронного в/в с использованием сокетов.
> Действительно, междусокетамии modeесть разница. Ты практически точь-в-точь повторил мою фразу.
> ЗЫ. Все 4 модели асинхронного ввода-вывода (без select-а) > подразумевают неблокирующий режим работы сокета. Читай вопрос автора, ответ и моё замечание.
<без заголовка>11.05.03 11:59 Автор: IgorR <Igor Razin> Статус: Member
>Правильный ответ: не путать тёплое с мягким. Между асинхронными сокетами и non-blocking mode как раз такипринципиальнаяразница.
И это я ещё теоритик?
> > Действительно, междусокетамииmodeесть разница. > Ты практически точь-в-точь повторил мою фразу. Ту, что выше? Гы. Глумлюсь я ;)
> > ЗЫ. Все 4 модели асинхронного ввода-вывода (без > select-а) подразумевают неблокирующий режим работы сокета. > Читай вопрос автора, ответ и моё замечание. Читал, прикинь?
Автор> Кстати есть ли принципиальная разница между асинхронными сокетами(WSA) и неблокирующими
amirul>Всегда считал, что асинхронные и есть неблокирующие
>Правильный ответ: не путать тёплое с мягким. Между асинхронными сокетами и non-blocking mode как раз такипринципиальнаяразница.
Твоё "замечание" абсолютно не в тему. Если есть что сказать по существу - говори, а так - выпендрёж.
итак:
1)асинхронные сокеты это сокеты позволяющие проводить в\в асинхронно, то бишь независимо самой проги
2)неблокирующие сокеты - это сокеты которые не блокируют выполнение программы. достигаетмся это выполнением в\в параллельно самой проге
или я чегото неправильно понимаю, или это одно и то же. Аснхронные сокеты не блокируют прогу а неблокирующие работают асинхронно Ж)
Не говори загадками. Растолкуй эти понятия мне, ламеру бестолковому Ж)07.05.03 17:13 Автор: Killer{R} <Dmitry> Статус: Elderman