Windows下Python网络代码中Errno 10055无法连接
我刚开始学习搭建网络,也对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个。下面是操作步骤。