Python套接字超时

安东尼·罗素

我试图在端口80上为google打开一个套接字,但是对于我来说,我不知道为什么会超时。如果我不设置超时,它将无限期地挂起。

我认为我的公司防火墙没有阻止此请求。我可以在浏览器中导航到google.com,因此此处不应有任何挂断。

import socket

HOST = '173.194.121.39'   
PORT = 80             

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.settimeout(20)


data = s.recv(1024)
print(data)
s.close()
v1k45

这将起作用:

import socket

HOST = 'www.google.com'
PORT = 80

IP = socket.gethostbyname(HOST)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((IP, PORT))

message = b"GET / HTTP/1.1\r\n\r\n"

s.sendall(message)

data = s.recv(1024)
print(data.decode('utf-8'))
s.close()

您的代码有什么问题:您的代码是直接使用IP的,我尝试使用使用主机名查找IP socket.gethostbyname()我不知道为什么:P

您原本希望返回的数据不发送任何数据。我使用了s.sendall一种方法来发送HTTP请求(由于您使用的是python3,因此数据必须以字节为单位)。还解码返回打印的数据。

我希望它也对您有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

套接字连接超时

来自分类Dev

套接字默认超时

来自分类Dev

Python-如何捕获gevent套接字超时异常

来自分类Dev

为Twisted(python)设置UDP套接字超时

来自分类Dev

使用Twisted(python)为UDP套接字设置超时

来自分类Dev

在发送数据时设置Python套接字的超时

来自分类Dev

在Python套接字上连接失败时正确设置超时

来自分类Dev

超时套接字连接Python后如何调用异常?

来自分类Dev

Android套接字连接超时

来自分类Dev

套接字等待连接超时

来自分类Dev

接受套接字功能超时

来自分类Dev

Ruby中的套接字超时

来自分类Dev

ObjectInputStream和套接字超时

来自分类Dev

如何使TCP套接字超时

来自分类Dev

Jetty Web套接字超时

来自分类Dev

套接字 - 使用选择超时

来自分类Dev

蓝牙套接字:读取失败,套接字可能关闭或超时

来自分类Dev

Android在蓝牙套接字上设置超时

来自分类Dev

默认套接字超时[XAMPP HTTPS]

来自分类Dev

套接字超时不起作用

来自分类Dev

节点网络套接字连接超时

来自分类Dev

与本地主机的套接字连接超时

来自分类Dev

Fabric套接字异常:连接超时

来自分类Dev

Java线程套接字连接超时

来自分类Dev

如何更改套接字读取超时?

来自分类Dev

在Windows上获取套接字超时值

来自分类Dev

套接字超时不起作用

来自分类Dev

默认套接字超时[XAMPP HTTPS]

来自分类Dev

如何设置失败连接的套接字超时