2011-11-19 35 views
0

我想在这里做一个简单的HTTP客户端,所以我试图用socket.sendto()socket.recvfrom() 发送和接收消息:Python套接字的例子,为什么这个程序卡在recvfrom与UDP?

因此,有我的系统上启用的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的插座,为什么我被困在这儿了?

回答

6

您试图通过UDP访问HTTP服务器(SOCK_DGRAM)。改用TCP(SOCK_STREAM)。由于TCP是面向连接的协议,因此请考虑使用socket.create_connection

0

您可能还需要检查出龙卷风:http://www.tornadoweb.org/

这是相当不错的,一旦你习惯了。 源代码中有示例代码。

祝你好运。

相关问题