1.Python实现简易版web服务器
# coding = utf-8
import socket
import re
import threading
import multiprocessing
import gevent
import sys
from gevent import monkey
# monkey.patch_all()
# 采用多进程时,如果开启monkey.patch_all()会报错,报错信息如下:
# TypeError: Cannot serialize socket object
class HTTPServer(object):
def __init__(self, port):
# 初始化操作,创建属性
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 创建TCP 套接字
# 设置地址重用选项 解决由2MSL状态规定(30s到2min内主动断开TCP连接的一方
# 不能立即绑定套接字端口
# )的情况 ---> 理解重新绑定 套接字层面 重用地址选项 1设置 0取消
self.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定 监听
self.server_socket.bind(('', port)) # 需要以元组的形式传入
self.server_socket.listen(128) # 接受客户端连接最大个数
def client_handler(self, client_socket):
# 处理客户端的HTTP请求
# 接受数据
recv_data = client_socket.<

最低0.47元/天 解锁文章
130

被折叠的 条评论
为什么被折叠?



