欢迎访问宙启技术站
智能推送

用Python编写的简单网络服务器程序

发布时间:2023-12-04 18:22:20

下面是一个使用Python编写的简单网络服务器程序的示例:

import socket

def handle_request(client_socket):
    request_data = client_socket.recv(1024).decode() # 接收来自客户端的请求数据
    print("Received request:
", request_data)

    # 构造响应数据
    response_data = "HTTP/1.1 200 OK
Content-Type: text/html

Hello, World!"

    client_socket.sendall(response_data.encode()) # 发送响应数据给客户端
    client_socket.close()

def start_server():
    host = "localhost" # 主机名
    port = 8000 # 端口号

    # 创建套接字并绑定到指定主机和端口
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind((host, port))

    print("Server is running on", host, ":", port)

    server_socket.listen(5) # 设置监听队列的最大长度

    while True:
        # 接受客户端的连接请求
        client_socket, client_address = server_socket.accept()
        print("Client connected:", client_address)

        # 处理客户端的请求
        handle_request(client_socket)


if __name__ == "__main__":
    start_server()

使用该程序创建一个简单的网络服务器是很简单的。首先,你需要将上述代码保存到一个名为server.py的文件中,并运行该程序。然后,你可以使用浏览器或者命令行工具进行测试。

使用浏览器测试的话,打开一个浏览器,输入localhost:8000作为URL地址,按下回车键。浏览器会向服务器发送一个HTTP GET请求,然后服务器会把请求数据打印出来,并向浏览器发送一个包含"Hello, World!"的HTTP响应。你可以在浏览器的窗口中看到这个响应。

使用命令行工具测试的话,你可以使用curl命令行工具。打开一个终端窗口,输入以下命令:

curl localhost:8000

该命令会向服务器发送一个HTTP GET请求,服务器会向命令行工具打印出响应数据。你可以在终端窗口中看到服务器发送的"Hello, World!"响应。

该示例程序创建了一个简单的HTTP服务器,每当客户端发送一个HTTP请求时,服务器会返回一个"Hello, World!"的响应。这只是一个非常基本的例子,你可以根据需要修改和扩展它来满足特定的要求。