2011-11-19 36 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/

這是相當不錯的,一旦你習慣了。 源代碼中有示例代碼。

祝你好運。

相關問題