Python搭建简易Web服务器

学习了python的socket编程,首先做个小练习,然后慢慢深入,搭建个简单的web服务器

1. socket小练习

服务端代码

import socket

HOST, PORT = "127.0.0.1", 8888

listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ##创建服务端套接字
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)  # 保证服务器的监听socket,即listen_socket在
# 关闭后对应的端口能够立即释放,否则将会在数分钟后才能释放
listen_socket.bind((HOST, PORT))  # 绑定地址和端口,''为空默认为本地'127.0.0.1'
listen_socket.listen(5)

print('开始监听.........')
# while 循环的原因,服务器不能关闭
while True:
	print('等待客户端链接...')
    # 等待和客户端连接,成功则返回生成的对等套接字,如果没有(失败),
    # 则会报错(因为是非阻塞模式,没有客户端请求连接,就会抛出异常)
    client_connection, client_address = listen_socket.accept()

    print('客户端{}请求来了,连接成功'.format(client_address))
    # 接收客户端发送来的数据(请求),如果没有,会报错(因为是非阻塞模式,不会等待客户端发送消息)
    request = client_connection.recv(1024)
    print(request)

    http_response = """
                    HTTP/1.1 200 OK
                    Hello, World!
                    """
    # 向客户端发送数据
    client_connection.sendall(http_response.encode())
    client_connection.close()  # 关闭与客户端连接

客户端代码

import socket

client = socket.socket()

client.connect(('127.0.0.1',8888))  # 与服务端连接

client.send('welcome to socket'.encode())

data = client.recv(1024)

print('接收到的来自服务端的响应{}'.format(data.decode()))

当然我们要试试用浏览器这个客户端连接。。。。

参考

  1. https://blog.csdn.net/woxiaohahaa/article/details/77923723
  2. https://blog.csdn.net/perfectsorrow/article/details/80237066

猜你喜欢

转载自blog.csdn.net/qq_36653505/article/details/84728268