Re[3]: CAsyncSocket::Connect
От: SergPas Украина  
Дата: 10.09.01 13:13
Оценка:
Здравствуйте Аноним, вы писали:

A>>>Получаю ошибку — WSAEWOULDBLOCK The socket is marked as nonblockin

A>>>Понятно всё кроме того где я могу изменить тип сокета с nonblocking.
S>>Есть такая функция у CAsyncSocket
S>>BOOL IOCtl( long lCommand, DWORD* lpArgument );
S>>так вот, если в параметре lCommand указать FIONBIO и в lpArgument передать указатель на DWORD в котором надо указать 0 если хотите, что бы снять blocking или 1 для установки оного

А>У меня таже проблема. Пишу:


А>DWORD par = 1;

А>m_sSocket.IOCtl(FIONBIO, &par);

А>m_sSocket.Create();


А>if(m_sSocket.Connect("localhost", 4000))

А> MessageBox("Connect!!!");
А>else
А> MessageBox("error!");

А>Всегда выскакивает error! В чем беда?



Попробуй так:

m_sSocket.Create();
m_sSocket.AsyncSelect(0)
DWORD par = 0;
m_sSocket.IOCtl(FIONBIO, &par);

int i=m_sSocket.Connect("localhost", 4000);
if(i!=WSAECONNREFUSED) MessageBox("error!");

...

Ошибки WSAEWOULDBLOCK быть не должно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.