Python(服务器)和Java(客户端)之间的 TCP 套接字中发生意外的分包和粘连

Unexpected Subcontract and Stick happened in TCP Socket between Python (Server) and Java (Client)

同事的Java(Client)TCP socket程序向我的Python(Server)TCP socket程序发包(500KB~1MB)时,出现分包粘连的情况。我想知道,这种情况有没有普遍有效的解决方案?在这种情况下,人们通常会做什么? 我想如果可以手动刷新socket函数recv(buffer_zone)请求的buffer zone。如果我能做到,至少程序不会粘包。

是我,我已经通过Head-Tail打包模式解决了这个问题。
具体地,客户端在向服务器端发送一系列数据时,可以发送一个头包,其中包含戳记信息和数据长度。当服务器收到客户端发送的头包时,它可以知道客户端将发送给服务器的长度,服务器可以为传入的数据准备相同长度的缓存。当客户端向服务端发送tail(数据)包时,服务端可以根据预先知道的数据长度取出数据。这是我现在的解决方案。