首页 > 解决方案 > 套接字创建速度差异巨大 Python3.7/Python2.7

问题描述

我正在尝试创建一个套接字,然后连接到同一台服务器,直到我无法从我的 PC 建立任何连接并且我遇到了一个问题:我的程序使用 Python 2.7 比使用 Python 3.7 快得多。

这是一个最小的例子:

# client.py

import time
import socket

begin = time.time()
socket_list = []

while True:
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)
        s.connect(("127.0.0.1", 65432))
        socket_list.append(s)
    except:
        print(len(socket_list))
        print(time.time() - begin)
        for sock in socket_list:
            sock.close()
        break

# server.py

import socket

HOST = "127.0.0.1"
PORT = 65432

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen()
while True:
    s.accept()

使用 Python 3.7 客户端和 Python 3.7 服务器端的输出:

16298
32.764869928359985

使用 Python 2.7 客户端和 Python 3.7 服务器端的输出:

16297
1.86599993706

操作系统: Windows 10

服务器:

Gitlab 服务器在我的本地网络中运行,在另一台计算机上。

上面提到的服务器。

注意:请不要在本地以外的地方进行测试。

编辑:添加了服务器部分,只是为了确保这不是问题

标签: pythonsocketstime

解决方案


推荐阅读