使用 Python 套接字编程不显示 HTML 页面

匿名 23234720-12473

我正在尝试使用 python 学习套接字编程,并且我创建了一个简单的网络服务器,我可以在我的浏览器中连接到它。我打开了一个 html 文件并发送了它,但它没有显示在浏览器中。

我的简单网络服务器

import socket
import os

# Standard socket stuff:
host = ''
port = 8080
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((host, port))
sock.listen(5) 

# Loop forever, listening for requests:
while True:
    csock, caddr = sock.accept()
    print("Connection from: " + str(caddr))
    req = csock.recv(1024)  # get the request, 1kB max
    print(req)
    # Look in the first line of the request for a move command
    # A move command should be e.g. 'http://server/move?a=90'
    filename = 'static/index.html'
    f = open(filename, 'r')
    l = f.read(1024)
    while (l):
        csock.sendall(str.encode("""HTTP/1.0 200 OK\n""",'iso-8859-1'))
        csock.sendall(str.encode('Content-Type: text/html\n', 'iso-8859-1'))
        csock.send(str.encode('\n'))
        csock.sendall(str.encode(""+l+"", 'iso-8859-1'))
        print('Sent ', repr(l))
        l = f.read(1024)
    f.close()

    csock.close()

索引.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p>This is the body</p>
</body>
</html>

我对此很陌生,所以我可能只是遗漏了一个非常详细的细节,但我希望得到一些帮助,让 html 文件在浏览器中正确显示。

披肩

顺便说一下,我试过你的脚本工作正常。也许您需要检查该filename值。

注意:确保发送 html 文件上的所有字符串几乎没有变化。

import socket
import os

# Standard socket stuff:
host = ''
port = 8080
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((host, port))
sock.listen(5) 

# Loop forever, listening for requests:
while True:
    csock, caddr = sock.accept()
    print("Connection from: " + str(caddr))
    req = csock.recv(1024)  # get the request, 1kB max
    print(req)
    # Look in the first line of the request for a move command
    # A move command should be e.g. 'http://server/move?a=90'
    filename = 'static/index.html'
    f = open(filename, 'r')

    csock.sendall(str.encode("HTTP/1.0 200 OK\n",'iso-8859-1'))
    csock.sendall(str.encode('Content-Type: text/html\n', 'iso-8859-1'))
    csock.send(str.encode('\r\n'))
    # send data per line
    for l in f.readlines():
        print('Sent ', repr(l))
        csock.sendall(str.encode(""+l+"", 'iso-8859-1'))
        l = f.read(1024)
    f.close()

    csock.close()

浏览器上的结果

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python创建html页面

来自分类Dev

使用python django在html页面上显示查询的API结果

来自分类Dev

解析包含&使用Python的HTML页面

来自分类Dev

使用beautifulsoup / python解析html页面

来自分类Dev

在python中使用lxml解析html页面

来自分类Dev

Selenium 使用 python 更改页面上的 html

来自分类Dev

如何使用python在HTML页面(纯文本)上显示HTML / Javascript代码段?

来自分类Dev

使用XSLT在HTML页面中显示SVG

来自分类Dev

如何使用BrightScript显示HTML页面

来自分类Dev

recv和recvfrom,使用python进行套接字编程

来自分类Dev

Python套接字编程:异常后为“地址已在使用中”

来自分类Dev

使用 Pickle 在 Python 中进行套接字编程

来自分类Dev

如何使用python套接字获取HTML代码

来自分类Dev

在Python中使用PyQuery解析本地HTML页面和在线HTML页面

来自分类Dev

如何使用HTML页面嵌入HTML页面

来自分类Dev

Python套接字编程

来自分类Dev

扩展报告-使用Intellij IDEA打开html页面时不显示图像

来自分类Dev

使用套接字从页面加载数据

来自分类Dev

在多个页面上使用套接字

来自分类Dev

HTML页面不显示谷歌地图

来自分类Dev

HTML页面不显示谷歌地图

来自分类Dev

执行php而不显示html页面

来自分类Dev

HTML 页面什么都不显示

来自分类Dev

使用python从文本文件创建动态HTML页面

来自分类Dev

如何使用Django在Python中查看HTML页面

来自分类Dev

使用python硒从HTML页面中选择项目

来自分类Dev

如何使用Django在Python中切换HTML页面

来自分类Dev

使用python从文本文件创建动态HTML页面

来自分类Dev

使用python下载几个HTML页面的内容