소켓을 동기식에서 비동기식으로 변환후 connect 가 -1 을 리턴합니다.

kicom95의 이미지

현재까지 unix 에서 fcntl 함수를 이용해서 비동기식 connect 함수를 사용하여 접속 제어를 했습니다.

요번에 windows 로 이소스를 옮길려고 했는데 허걱 windows 에는 fcntl 함수가 없더군요

그래서 물어 물어 찾아보니. < 데브피아에 올릴까도 생각했지만 ^^ 전 KLDP 가 더 좋아서...^^ >

	unsigned long nb_flag = 1;
	ioctlsocket( this->m_sock, FIONBIO, &nb_flag); // nb_flag = 0이면 off

가 비동기식 변환 함수라 해서 이부분만 변경해서 connect 함수를 호출했는데

-1 을 리턴합니다.... 뭐가 문제인지요

Rica의 이미지

MSDN의 Platform SDK: Windows Sockets 2 / connect 항목에서 인용했습니다 :

"... With a nonblocking socket, the connection attempt cannot be completed immediately. In this case, connect will return SOCKET_ERROR, and WSAGetLastError will return WSAEWOULDBLOCK. ..."

kicom95의 이미지

저는 unix 의 connect 함수에서

fcntl 부분만 변경하면 되는줄 알고요....

다시 좀더 찾아 봐야겠네요

다시 한번 감사드립니다.

가자 해외로 ~ .. 돈 벌러.