http_server按照资料里的代码也运行不了,怎么办

来源:4-12 正确认识http协议 -2

慕的地9382947

2023-09-22

socket服务端

import socket
import threading
import json

server = socket.socket()

绑定到0.0.0.0:8000端口上

server.bind((‘0.0.0.0’, 8000))
server.listen()

def handle_sock(sock, addr):
while True:
# recv方法是阻塞的
tmp_data = sock.recv(1024*10)
tmp_data = tmp_data.decode(“utf8”)
request_line = tmp_data.splitlines()[0]
if request_line:
method = request_line.split()[0]
path = request_line.split()[1]
if method == “GET”:
response_template = ‘’'HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://localhost:63342

Title
            '''
            sock.send(response_template.encode("utf8"))
            sock.close()
        elif method == "POST":
            response_template = '''HTTP/1.1 200 OK

Content-Type: application/json
Access-Control-Allow-Origin: http://localhost:63342

{}

    '''
            data = [
                {
                    "name": "django打造在线教育",
                    "teacher": "bobby",
                    "url": "https://coding.imooc.com/class/78.html"
                },
                {
                    "name": "python高级编程",
                    "teacher": "bobby",
                    "url": "https://coding.imooc.com/class/200.html"
                },
                {
                    "name": "scrapy分布式爬虫",
                    "teacher": "bobby",
                    "url": "https://coding.imooc.com/class/92.html"
                },
                {
                    "name": "django rest framework打造生鲜电商",
                    "teacher": "bobby",
                    "url": "https://coding.imooc.com/class/131.html"
                },
                {
                    "name": "tornado从入门到精通",
                    "teacher": "bobby",
                    "url": "https://coding.imooc.com/class/290.html"
                },
            ]
            sock.send(response_template.format(json.dumps(data)).encode("utf8"))
            sock.close()
            break

获取客户端连接并启动线程去处理

while True:
# 阻塞等待连接
sock, addr = server.accept()

# 启动一个线程去处理新的用户连接
client_thread = threading.Thread(target=handle_sock, args=(sock, addr))
client_thread.start()

**

运行结果

**
图片描述

写回答

1回答

bobby

2023-09-25

这里上面提示了 这个端口已经被其他服务占用了 你换个端口吧

0
0

Python爬虫工程师实战 大数据时代必备

慕课网严选精品教程,高质量内容+服务!

2406 学习 · 1158 问题

查看课程