소켓을 동기식에서 비동기식으로 변환후 connect 가 -1 을 리턴합니다.
글쓴이: kicom95 / 작성시간: 목, 2006/08/10 - 9:35오전
현재까지 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 을 리턴합니다.... 뭐가 문제인지요
Forums:
원래 그렇게 동작합니다.
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. ..."
감사합니다..
저는 unix 의 connect 함수에서
fcntl 부분만 변경하면 되는줄 알고요....
다시 좀더 찾아 봐야겠네요
다시 한번 감사드립니다.
가자 해외로 ~ .. 돈 벌러.
댓글 달기