尝试连接到localhost套接字服务器时,Web浏览器上的“连接已重置”

时间:2015-11-26 22:35:08

标签: python sockets browser

我正在尝试使用可以在任何Web浏览器上连接的套接字在python中创建服务器。我使用主机作为“localhost”,端口作为8888.

当我尝试连接它时,我想要显示的内容显示为瞬间,然后它会随浏览器显示“连接已重置”。
我已经让它做了一些非常简单的测试,如果它仍然可以做到,它确实如此。

有办法阻止这个吗?

import time
import socket
HOST = "localhost"
PORT = 8888

def function(sck):
    sck.send(bytes("test"),"UTF-8"))
    sck.close()

ssck=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ssck.bind((HOST,PORT))
ssck.listen(1)
while True:
    sck,addr=ssck.accept()
    function(sck)

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

TL;博士 你的功能应该是

def function(sck):
    sck.send(bytes("HTTP/1.1 200 OK\n\n<header><title>test page</title></header><body><h1>test page!</h1></body>"),"UTF-8"))
    sck.close()

使用简单的服务器,您只需创建一个TCP套接字。

HTTP协议建议客户端要求提供一个页面,例如:

HTTP/1.1 GET /somepath/somepage.html
Host: somehost.com
OtherHeader: look at the http spec

响应应为:

HTTP/1.1 200 OK
some: headers

<header></header><body></body>