我正在尝试在此处创建一个简单的HTTP客户端,因此我尝试使用socket.sendto()
和socket.recvfrom()
发送和接收消息:
所以在我的系统上启用了apache服务器,绑定到端口80:
sock = socket (AF_INET , SOCK_DGRAM)
sock.sendto ( 'GET /' , ( 127.0.0.1 , '80' ) )
message , servaddr = sock.recvfrom (255)
卡住,但nc localhost 80
与'GET /'合作
默认情况下,python的套接字不是非阻塞的,为什么我会卡在这里?
答案 0 :(得分:6)
您正尝试通过UDP(SOCK_DGRAM
)访问HTTP服务器。请改用TCP(SOCK_STREAM
)。由于TCP是面向连接的协议,因此请考虑使用socket.create_connection
。
答案 1 :(得分:0)
您可能还想查看Tornado:http://www.tornadoweb.org/
一旦你习惯了,这是非常好的。 源代码中有示例代码。
祝你好运。