用MFC加API写的一个客户端接收程序,在ONreceive中添加了recv()接收函数,紧接着有send()发送函数。(以及大量容错处理)
但为什么OnRecive偶尔会无法收到通知呢??
跟话梅超人的相似,想问一下具体是怎么处理的,Asyncselect是在ONReceive里面加的,还是在其他地方加的?是Asyncselect(FD_READ)?希望不吝赐教··详细说一下
但为什么OnRecive偶尔会无法收到通知呢??
跟话梅超人的相似,想问一下具体是怎么处理的,Asyncselect是在ONReceive里面加的,还是在其他地方加的?是Asyncselect(FD_READ)?希望不吝赐教··详细说一下
Asyncselect(FD_READ)肯定要加到onRecive中的
但是我不清楚你的onRecive中无限循环是否在接收到包头指定的数据长度后就退出循环 使得onrecive能够完成执行?
你可以尝试把数据交互的周期加到足够大,使得再完成一次数据交互后 有几秒的空闲期 看看 还会不会有问题
然后逐渐缩小周期
那个for无限循环中的流程是这样的:先recv()接受数据(recv()的时候使用了select()使其非阻塞),然后容错判断,接着send()函数发送数据(send没有使用select(),应该是阻塞的吧),等到发送完毕,然后进入下一次for循环。
不知道这样的流程对不对,有没有更好更稳定的接受发送流程,希望能参考一下!