Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何发送包含图片的HTML页面?_Python_Html_Tcp - Fatal编程技术网

Python 如何发送包含图片的HTML页面?

Python 如何发送包含图片的HTML页面?,python,html,tcp,Python,Html,Tcp,我已经编写了一个TCP服务器,它可以完美地处理只包含文本的网页,但我似乎无法发送包含图片的HTML文件。我该怎么做 DIR = "D:/wwwroot/" SERVER = ("server_address", 8820) #server_address replaced with my IP PHRASE_CHART = "D:/wwwroot/phrase_chart.txt" CONTENT_TYPE_CHART = "D:/wwwroot/content_type_chart.txt"

我已经编写了一个TCP服务器,它可以完美地处理只包含文本的网页,但我似乎无法发送包含图片的HTML文件。我该怎么做

DIR = "D:/wwwroot/"
SERVER = ("server_address", 8820) #server_address replaced with my IP
PHRASE_CHART = "D:/wwwroot/phrase_chart.txt"
CONTENT_TYPE_CHART = "D:/wwwroot/content_type_chart.txt"
DEFAULT_PAGE = "D:/wwwroot/main.html"

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(SERVER)
client_counter = 0
while client_counter <= 10:
    server_socket.listen(1)
    (client_socket, client_address) = server_socket.accept()
    client_counter += 1
    while True:
        try:
            request = client_socket.recv(1024)
            request = request[0:request.find("/r/n/r/n")]
            if request[0:3] == "GET":
                file_name = request[5: request.find("HTTP/1.1") - 1]
                if os.path.isfile(DIR + file_name):
                    page = open(DIR + file_name)
                    data = ""
                    for line in page:
                        data += line
                    client_socket.send(data)
                elif file_name == "":
                    page = open(DEFAULT_PAGE)
                    data = ""
                    for line in page:
                        data += line
                    client_socket.send(data)
                else:
                    client_socket.send("")
            else:
                client_socket.close()
        except socket.error:
            break
client_socket.close()
server_socket.close()
DIR=“D:/wwwroot/”
服务器=(“服务器地址”,8820)#服务器地址替换为我的IP
PHRASE\u CHART=“D:/wwwroot/PHRASE\u CHART.txt”
CONTENT\u TYPE\u CHART=“D:/wwwroot/CONTENT\u TYPE\u CHART.txt”
默认值\u PAGE=“D:/wwwroot/main.html”
server\u socket=socket.socket(socket.AF\u INET,socket.SOCK\u流)
服务器\u套接字.bind(服务器)
客户端计数器=0

虽然浏览器将发出另一个HTTP GET请求,请求HTML文档链接到的图像(以及任何其他内容),但目前您似乎认为每个传入的请求都是针对文本资源的。您应该使用捕获工具或浏览器网络检查器检查向服务器发出的HTTP请求。如果打开浏览器的开发控制台,您可以看到如何通过来自您选择的常用服务器的多个HTTP GET请求加载页面。