0

例如,我有几种处理程序,它们都将套接字对象作为请求处理,但我必须决定请求应该去哪个处理程序,因此我必须分析请求的数据,但由于我已经读取了数据,数据在该请求将是不完整的。

代码可以这样描述:

def handle_request(request,client_address,server):
    request_type = getType(request)
    if request_type == 'typeA':
       TypeAHandler(request,client_address,server)
    elif request_type == 'typeB':
       TypeBHandler(request,client_address,server)
    elif request_type == 'typeC':
       TypeCHandler(request,client_address,server)
...

有没有办法回滚请求的数据,或者克隆请求,所以我可以简单地完成这个任务?

4

1 回答 1

3

Python 使用鸭子类型。如果某个东西看起来像一个套接字,它可以用作一个套接字。

您可以编写一个自定义套接字对象,该对象首先提供已读取的数据,然后从真实套接字提供其余数据。对于处理程序,整个事情将是透明的,因此不需要更改代码。

于 2013-08-25T18:38:16.190 回答