你好,我是python的新手,我正在写一个生成dns请求的代码
from socket import error as socket_error
import threading
from random import randint
from time import sleep
def task(number):
try :
HOST = Random_website.random_website().rstrip() # fetches url
PORT = 80 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
print(str(number) +":"+HOST +"Connected")
except socket_error as serr:
if serr.errno != errno.ECONNREFUSED:
# Not the error we are looking for, re-raise
raise serr
thread_list = []
for i in range(1, 100):
t = threading.Thread(target=task, args=(i,))
thread_list.append(t)
for thread in thread_list:
thread.start()执行上面的代码会抛出这个错误,有没有人能帮我摆脱这个问题?我从一天开始就把头发拉出来了。
提前感谢
发布于 2016-07-26 15:41:55
这样的:
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> s.connect(("www.google.com",80))
>>> s.connect(("http://www.google.com",80))
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
s.connect(("http://www.google.com",80))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
gaierror: [Errno -2] Name or service not known
>>> 套接字不是 HTTP 连接!
发送请求前删除 HTTP:// 标签!
编辑:
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> s.connect(("digan.net",80))
>>> s.connect(("digan.net/hahaha/hihihi/etc",80))
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
s.connect(("digan.net/hahaha/hihihi/etc",80))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
gaierror: [Errno -2] Name or service not known
>>> 套接字无法将请求发送到其他路径。仅与服务器通信!
发布于 2017-03-09 21:42:21
当一个web代理是"on“时,我得到了同样的错误信息,但是url指向了本地网络中的一台机器,没有代理就可以访问它。将web-proxy (http)设置为"off“为我解决了这个问题。
希望这能帮到你,亚历克斯。
https://stackoverflow.com/questions/38582990
复制相似问题