python3 TCPServer 按指定长度接收数据

xiaoyuer5222 2018-09-12 10:16:37
class BaseRequestHandler:

"""Base class for request handler classes.

This class is instantiated for each request to be handled. The
constructor sets the instance variables request, client_address
and server, and then calls the handle() method. To implement a
specific service, all you need to do is to derive a class which
defines a handle() method.

The handle() method can find the request as self.request, the
client address as self.client_address, and the server (in case it
needs access to per-server information) as self.server. Since a
separate instance is created for each request, the handle() method
can define other arbitrary instance variables.

"""

def __init__(self, request, client_address, server):
self.request = request
self.client_address = client_address
self.server = server
self.setup()
try:
self.handle()
finally:
self.finish()

def setup(self):
pass

def handle(self):
pass

def finish(self):
pass
-----------------------------------------------------------------------------------------------------------------------------------
client发送的数据带长度位,例如:n位长度值 + 数据,handle()接收数据时,先接收n位长度值,再接收指定的数据,n位长度值如何传递到handle里面处理?
...全文
482 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
notback 2018-09-14
  • 打赏
  • 举报
回复
这种类应该自带 self.recv函数。
lencount = int(self.recv(9).decode("GBK"))
data_recv = self.recv(lencount)

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧