我有一个客户端服务器通信,我编写了以下服务器来处理传入的消息,但是如果消息大于缓冲区,它将丢失。如果消息大于缓冲区大小,我如何接收整个包?有没有可能,或者我必须强制客户端(在请求时以最大缓冲区大小发送消息)在缓冲区大小内发送消息?
msg =''
while( True ):
msg += server.recv( 20480 )
aSplit = msg.partition( "</packet>" )
#We received the full message
while( aSplit[ 1 ] == "</packet>" ):
messagehandler( aSplit[ 0 ] + "</packet>" )
msg = aSplit[ 2 ]
aSplit = msg.partition( "</packet>" )