郁闷的WSAEventSelect问题
int nErrorCode;
SOCKET s;
SOCKADDR_IN addr;
WSAEVENT event[1];
s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)/*, NULL, 0, 0)* /;
event = WSACreateEvent();
WSAEventSelect(s, event[0], FD_CONNECT);
addr.sin_family = AF_INET;
addr.sin_port = htons(13801);
addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
nErrorCode = connect(s, (SOCKADDR*)&addr, sizeof(SOCKADDR));
//nErrorCode = WaitForSingleObject((HANDLE)event, 5000);
nErrorCode = WSAWaitForMultipleEvents(1, event, FALSE, 5000, FALSE);
if ( nErrorCode == WSA_WAIT_EVENT_0 )
{
Caption = "connected sucessed!";
}
我本机的13801端口没有监听, 但是在connect 之后, WSAWaitForSingleObject 函数马上就返回了, 没有等待, 这是为什么呢?
那里写错了?