2014-01-10 50 views
0

我的代码:蟒蛇3 HTTP插座不工作

import socket 

host = '' 
port = 8090 
backlog = 5 
size = 1024 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((host,port)) 
s.listen(backlog) 
while 1: 
    client, address = s.accept() 
    #data = client.recv(size) 


    data= "ok" 

    if data: 
     client.send(bytes('HTTP/1.0 200 OK<CRLF>', 'UTF-8')) 
     client.send(bytes("Content-Type: text/html<CRLF><CRLF>", 'UTF-8')) 
     client.send(bytes('<html><body><h1>Hello World</body></html>', 'UTF-8')) 
    client.close() 

由于某种原因,每当我访问: HTTP:本地主机:8090谷歌浏览器的回报:

“的网页在http:本地主机:8090威力暂时关闭,或者它可能永久移动到新的网址。“

我抬头吨的例子,我不知道这是为什么不工作

我在Windows 7上运行的Python 3.3,三江源。

回答

0

你的<CRLF>字符在0123应该是\r\n。如果你然后把.recv回到它的工作原理:

import socket 

host = '' 
port = 8090 
backlog = 5 
size = 1024 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((host,port)) 
s.listen(backlog) 
while 1: 
    client, address = s.accept() 
    data = client.recv(size) 

    if data: 
     client.send(bytes('HTTP/1.0 200 OK\r\n', 'UTF-8')) 
     client.send(bytes("Content-Type: text/html\r\n\r\n", 'UTF-8')) 
     client.send(bytes('<html><body><h1>Hello World</body></html>', 'UTF-8')) 
    client.close() 

Python用反斜杠字符\在字符串逃脱。有关更多详情,请参阅http://docs.python.org/2/reference/lexical_analysis.html#strings

+0

这工作!谢谢!! – user1564622