有没有一种方法可以将数据取消转移回套接字



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

代码可以这样描述:

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)
...

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

Python使用鸭子类型。如果看起来像套接字,则可以将其用作套接字。

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

最新更新