粘包问题,求助
苦逼码农 2016-02-18 09:05:48 "iocp 粘包"的帖子,我看过不少,
高手们都提到一句话————————“不要对同一个socket,同时wsasend, wsarecv"即可。
请问如何做到———— 不要对同一个socket ,同时进行wsasedn, wsarecv 操作呢?
客户端用到了堵塞式套接字编程, 服务器用到了iocp。
由于iocp需要开辟2*n+2个线城,即使客户端按照顺序的发送数据 但是由于 服务器多线程的原因,会打断recv,导致最终接受的数据乱序。
我总不能只用一个线城接受吧?
具体如下:
客户端发送aaabbb 给服务器,服务器的协议栈里的数据是aaabbb, 但是由于多线程recv的原因,那么就导致:
线城1取出的数据 aabb
线城2的数据是ab
所以最终乱序。
请问我改如何?