书中:
while(TRUE)
{
Index = WSAWaitForMultipleEvents(EventTotal,
EventArray, FALSE, WSA_INFINITE, FALSE);
Index = Index - WSA_WAIT_EVENT_0; //已经减过了
//遍历所有事件,查看被传信的事件是否多于一个
for(i = Index; i < EventTotal; i++)
{
........................
else
{
Index = i; //也已经减过WSA_WAIT_EVET_0了
.............................................
if(NetWorkEvents.lNetworkEvents & FD_READ)
{
........................
recv(SocketArray[Index - WSA_WAIT_EVENT_0], //Index又减了一次
buffer, sizeof(buffer),0);
}
//处理FD_WRITE通知,(我认为出了同样的错误)
.................................. //处理FD_CLOSE通知(我认为没有问题)
................................
}
}
}
我看见过一篇同样的帖子,但是他认为是处理FD_CLOSE时出了问题,而前面的两个处理都没有问题,
所以把这段拿上来和大家讨论讨论
希望大侠们指点指点。。
while(TRUE)
{
Index = WSAWaitForMultipleEvents(EventTotal,
EventArray, FALSE, WSA_INFINITE, FALSE);
Index = Index - WSA_WAIT_EVENT_0; //已经减过了
//遍历所有事件,查看被传信的事件是否多于一个
for(i = Index; i < EventTotal; i++)
{
........................
else
{
Index = i; //也已经减过WSA_WAIT_EVET_0了
.............................................
if(NetWorkEvents.lNetworkEvents & FD_READ)
{
........................
recv(SocketArray[Index - WSA_WAIT_EVENT_0], //Index又减了一次
buffer, sizeof(buffer),0);
}
//处理FD_WRITE通知,(我认为出了同样的错误)
.................................. //处理FD_CLOSE通知(我认为没有问题)
................................
}
}
}
我看见过一篇同样的帖子,但是他认为是处理FD_CLOSE时出了问题,而前面的两个处理都没有问题,
所以把这段拿上来和大家讨论讨论
希望大侠们指点指点。。
呵呵