Title

Python之旅 1·Python服务器

# coding utf-8
import socket

# Address
from email.policy import HTTP

HOST = '127.0.0.1'
PORT = 8000

# Prepare HTTP response
text_content = '''''
HTTP/1.x 200 ok
Content-Type: text/html

<head>
<title>hello world</title>
</head>
<html>
<h1>Welcome Python serve</h1>
</html>
'''

# Read picture, put into HTTP format
f = open('wx.png', 'rb')
pic_content = '''''
HTTP/1.x 200 ok
Content-Type: image/png
'''

pic_content = pic_content + str(f.read())
f.close()

# configure socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))

# infinite loop, server forever
while True:
    # 3:maximum number of requests waiting
    s.listen(3)
    conn, address = s.accept()
    request = conn.recv(1024)
    method = request.decode().split(' ')[0]
    src = request.decode().split(' ')[1]
    # deal with 'GET' method
    if method == 'GET':
        # URL
        if src == '/wx.png':
            content = str(pic_content)
        else:
            content = str(text_content)

        print('Connect by', str(address))
        print('Request is', str(method))

        conn.sendall(content.encode())
    # close connection
    conn.close()

 

posted @ 2021-08-27 18:26  谈亦行  阅读(32)  评论(0编辑  收藏  举报