有没有办法将数据移回套接字?

时间:2013-08-25 16:00:23

标签: python sockets python-3.x

例如,我有几种处理程序,它们都将socket object作为请求处理,但是我必须决定请求应该去哪个处理程序,因此我必须分析请求的数据,但是因为我已阅读数据,请求中的数据将不完整。

代码可在此描述:

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

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

1 个答案:

答案 0 :(得分:3)

Python使用duck typing。如果某个看起来像一个套接字,它就可以用作套接字。

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