今天练习的时候发现当浏览器请求是图片的时候,服务器返回的是乱码。
源代码如下:
import socket
import re
import gevent
from gevent import monkey
monkey.patch_all()
class WebServer(object):
# 初始化,创建tcp服务器
def __init__(self):
# tcp服务器
tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
tcp_server.bind(('', 8080))
tcp_server.listen(128)
self.tcp_server = tcp_server
# 开始接收请求
def startaccept(self):
while True:
client, addr = self.tcp_server.accept()
gevent.spawn(self.handle_request,client)
@staticmethod
def handle_request(client):
# 接收浏览器发的报文
request_data = client.recv(1024).decode('utf-8')
# 使用正则匹配出报文中的地址
match = re.match('.+(/.*?) ', request_data)
# 判断地址是否存在
if match:
# 报文存在&