WSAEventSelect model 的 两个 问题 ? 谢谢
////////////////////////////////////////////////////////////////
//
// 第 1 个 问题
//
WSAEventSelect model 调用 send 函数的返回值为什么 总 不 是 SOCKET_ERROR ??
环境: WIN2K , VC++6.0
WSAEventSelect model send 函数的 返回值
#1 应该 总是 为 SOCKET_ERROR ?
#2 还是 可以 为 SOCKET_ERROR ,当是这个值的时候,再根据规定去处理 ?
我的实验结果 是 send 直接 发送直接 成功了 , 返回值 就是 发送的 字节数,
而不是 SOCKET_ERROR
////////////////////////////////////////////////////////////////
//
// 第 2 个 问题
//
WSAEventSelect model 发送数据 和 接收数据 需要 进行 速率的 控制吗?
我的实验代码:
server 端 :
while(1)
{
等待 FD_READ ,
recv
}
client 端:
while(1)
{
r = send ()// 这个 函数调用 直接 成功 ,每次 100 字节
WSAWaitForMultipleEvents();
Sleep(1000);
}
实验结果:
如果 不在 client 加一个 Sleep 进行 延时 ,
client 的 while 在执行了 若干次 ( 我的实验结果是 300 次左右 ) ,
send 函数的 返回值 就会突然 变成 SOCKET_ERROR ,
WSAGetLasterror 返回值 为 WSAEWOULDBLOCK ,
并且 接下来的 结果 WSAWaitForMultipleEvents 总是 timeout
////////////////////////////////////////////////
请给些提示或指导,谢谢