由于CAsyncSocket异步套接字发送消息时,相应OnSend事件随即返回,有可能导致封装在其下的Send函数没还调用就返回了。如果主线程频繁调用AsyncSelect(FD_WRITE),就可能造成最后发送的所有数据包都是最后一次调用AsyncSelect(FD_WRITE)时的数据包。即客户端收到的所有数据包包含的信息都是一样的。为了避免这种情况,一是可以再每次调用AsyncSelect(FD_WRITE)后延迟下一次调用,二是发送时不调用AsyncSelect(FD_WRITE),而是直接使用Send函数发送消息。
【网络通信】CAsyncSocket异步套接字中的注意点
最新推荐文章于 2021-12-29 10:00:58 发布
本文探讨了CAsyncSocket异步套接字发送消息时的问题,特别是在频繁调用AsyncSelect(FD_WRITE)的情况下可能导致所有发送的数据包信息相同。文章提出了两种解决方案:一种是在每次调用后延迟下次调用;另一种是直接使用Send函数发送消息。
634

被折叠的 条评论
为什么被折叠?



