winsock c++中recv函数的奇怪行为

Posted

技术标签:

【中文标题】winsock c++中recv函数的奇怪行为【英文标题】:Strange behavoir of recv function in winsock vc++ 【发布时间】:2011-12-08 07:29:59 【问题描述】:

我正在使用异步套接字。

服务器不断向客户端发送MSG。客户端会收到所有的 MSG,但有时会同时收到两三个消息。

【问题讨论】:

【参考方案1】:

这是绝对正常的。此外,不能保证您每次都阅读整数个“消息”。我的意思是,你可能会阅读 1.5 条消息(一个半),然后下一次阅读 2.7 条(剩下的一半,另外两条,下一个),以此类推。

必须实现将流拆分为消息的逻辑。

【讨论】:

以上是关于winsock c++中recv函数的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中的 Winsock 中发送 HTTP GET 请求后,Recv() 函数挂起

奇怪的 Winsock recv() 减速

当调用winsock 中的recv 函数并且没有收到所有数据时会发生啥?

同时执行 recv() 和 send() winsock

使用 Winsock 的 send()/recv() 时是不是需要确认响应?

winsock套接字的recv函数