Re[4]: CAsyncSocket::Connect
От: samsung Россия  
Дата: 11.02.02 16:55
Оценка:
Здравствуйте SergPas, Вы писали:

SP>Здравствуйте Аноним, вы писали:


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! В чем беда?



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


SP>m_sSocket.Create();

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

SP>int i=m_sSocket.Connect("localhost", 4000);

SP>if(i!=WSAECONNREFUSED) MessageBox("error!");

SP>...


SP>Ошибки WSAEWOULDBLOCK быть не должно



я так тоже попробовал но теперь выдаёт сообщение
Debug Accertion Failed
file sockcore.cpp
line 333
for more .... see visual c documentation
abort retry
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.