调用WSAAsyncSelect后,什么时候触发FD_WRITE消息啊?
开发服务器端程序时,调用WSAAsyncSelect将套接字设置为异步非阻塞,服务器端和客户端的通讯是客户端先向服务器端发送一组数据,服务器给客户端回复一组数据,就这样反复执行。
//消息响应函数
...
case FD_READ: //网络数据包到达事件
{
OnReceive(CurSock);
break;
}
case FD_WRITE: //发送网络数据事件
{
OnSend(CurSock);
break;
}
...
我的设想是调用OnReceive接收数据后后马上传递给OnSend函数进行处理,处理完后OnSend函数将处理后的数据发送给客户端。可是我怎么控制OnReceive和OnSend的执行顺序啊?
FD_READ事件是当对方发送数据过来后就应该自动触发的,FD_WRITE是怎么触发的?按我的情况,最好响应FD_READ事件后响应FD_WRITE事件。请高手给指点迷津。
还有个小问题,使用WSAAsyncSelect将socket设置为异步非阻塞模式后,还能用send吗?还是必须用WSASend?