Здравствуйте 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