用UDP传输怎么会只收到了一次数据?
在服务器端用WSASelect提名FD_READ事件(接受到数据时产生消息)
在客户端不停的send 数据
在服务器端照理说应该不断有FD_READ消息生成啊 为什么只生成了一个FD_READ消息呢?
问题点数:60、回复次数:3Top
1 楼krh2001(边城浪子)回复于 2005-05-31 20:38:24 得分 60
因为你只调用了一次啊,你必需接收完成之后, 再调用一次,这样才会产生下一次 OnReceive 消息:
void CSvrSocket::OnReceive(...)
{
int i = Receive(...);
.....
.....
WSASelect(FD_READ); // 准备接收下一个数据
}Top
2 楼Jinemmy2005()回复于 2005-05-31 21:03:11 得分 0
我改成这样了
void CSvrSocket::OnReceive(...)
{
MessageBox("Receving");
//我没有用receive函数
.....
.....
WSASelect(FD_READ); // 准备接收下一个数据
}
结果是不停弹出窗口 "Receiving"
Top
3 楼krh2001(边城浪子)回复于 2005-05-31 21:13:37 得分 0
你不去调用接收函数,缓冲区内始终有数据.当然会不断地有消息过来.... 晕死Top




