Windows下Python网络代码中Errno 10055无法连接

0 投票
1 回答
1922 浏览
提问于 2025-04-17 17:29

我刚开始学习搭建网络,也对Python不太熟悉。最近我买了第二台电脑,用来运行一些Python程序。这台第二电脑会把数据输入到我主电脑上的MySQL数据库里。

我遇到了很多10055错误。有时候是从selenium或urllib发出的,有时候是尝试连接MySQL数据库时出现的。错误信息大致是:

Selenium - 错误号10055。因为系统缺少足够的缓冲区空间或者队列已满,无法对一个套接字执行操作。

MySQL - 无法连接到IP上的MySQL服务器(10055)

我搜索了好几个小时,想找到解决这个问题的方法,但一直没找到有效的。有没有什么建议?

我在一台相当强大的Windows 7电脑上运行这些程序。我真的怀疑这不是内存的问题。

导致问题的代码片段之一如下(我遇到的就是无法连接到MySQL服务器的错误)——这个问题有时候会出现:

    def connect_to_database(schema_name):
             import MySQLdb
             import socket
             counter = 0
    #try 100 times until a connection is made
             while counter <= 100:
                    try:
    #gets ip of host comp
                            ip = socket.gethostbyname('PC NAME')
                            conn = MySQLdb.connect(ip, "username", "pw", schema_name)
                            c = conn.cursor()
                            conn.set_character_set('utf8')
                            c.execute('SET NAMES utf8;')
                            c.execute('SET CHARACTER SET utf8;')
                            c.execute('SET character_set_connection=utf8;')
                            break
                    except Exception, err:
                            print traceback.format_exc()
                            try:
   #if failure, use different ip, so far i have only seen 2 ip's for the network.
                                    if socket.gethostbyname(socket.gethostname()) == '10.0.0.13':
                                            ip = '10.0.0.14'
                                    else:
                                            ip = '10.0.0.13'
                                    conn = MySQLdb.connect(ip, "username", "pw", schema_name)
                                    c = conn.cursor()
                                    conn.set_character_set('utf8')
                                    c.execute('SET NAMES utf8;')
                                    c.execute('SET CHARACTER SET utf8;')
                                    c.execute('SET character_set_connection=utf8;')
                                    break
                            except Exception, err:
                                    print traceback.format_exc()
                                    counter = counter + 1
            return c, conn

1 个回答

0

我觉得我找到了解决办法。还需要更多测试来确认这个方法是否有效。我把我Windows 7电脑上的临时端口数量增加到了65,000个。下面是操作步骤。

如何更改/查看Windows机器上的临时端口范围

撰写回答