如何接收带有空数据的套接字消息?

Ber*_*ala 2 python sockets

我有一个套接字客户端和一个套接字服务器.

(服务器在python中,并且是同步的.)

有时客户端发送一个空字符串.我需要确定这种情况,并返回一个回复.

使用此代码,服务器只是等待,并且客户端不会得到任何回报,除非它发送的东西mroe"胖";)

我如何捕捉空信息?它是否可能?

这是我的服务器代码:

import SocketServer

def multi_threaded_socket_server():

    class MyRequestHandler(SocketServer.BaseRequestHandler):
        def handle(self):
            while True:
                print 'waiting for client calls...'
                received = self.request.recv( PACKET_SIZE )
                (handle request... )
Run Code Online (Sandbox Code Playgroud)

use*_*421 7

  • 在TCP中,没有空消息,因此零意味着对等断开连接.
  • 在UDP中,没有对等断开连接,因此零表示空数据报.

当您描述一个多线程套接字服务器时,它似乎是TCP,在这种情况下您的要求没有意义.您无法通过TCP发送空消息.您必须使用叠加协议来处理所有事情.