在 python 中禁用 nagle:如何正确执行?

Men*_*dor 4 sockets python-2.6 nagle

我需要在python2.6中禁用nagle算法。我发现以这种方式在 httplib.py 中修补 HTTPConnection

    def connect(self):
        """Connect to the host and port specified in __init__."""
        self.sock = socket.create_connection((self.host,self.port),
                                         self.timeout)
        self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, True) # added line
Run Code Online (Sandbox Code Playgroud)

就可以了。

显然,如果可能的话,我想避免修补系统库。所以,问题是:做这样的事情的正确方法是什么?(我对 python 很陌生,很容易在这里错过一些明显的解决方案)

小智 6

请注意,如果直接使用套接字库,则以下内容就足够了:

self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, True)
Run Code Online (Sandbox Code Playgroud)

我将此信息附加到已接受的答案中,因为它满足了我来到这里的信息需求。