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

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

发布时间:2023-12-04 11:13:04

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

import socket

def handle_client(client_socket):
    # 从客户端接收数据
    request = client_socket.recv(1024)
    print("Received:", request.decode())

    # 向客户端发送响应
    response = "Hello from the server!"
    client_socket.send(response.encode())

    # 关闭客户端连接
    client_socket.close()

def run_server():
    # 创建一个套接字对象
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 绑定IP地址和端口号
    server_address = ('localhost', 8000)
    server_socket.bind(server_address)
    print("Server is running on", server_address)

    # 监听连接
    server_socket.listen(1)

    while True:
        # 等待客户端连接
        print("Waiting for client...")
        client_socket, client_address = server_socket.accept()
        print("Client connected:", client_address)

        # 处理客户端请求
        handle_client(client_socket)

if __name__ == '__main__':
    run_server()

上述代码定义了一个简单的网络服务器程序。在主函数run_server()中,首先创建了一个套接字对象,并通过bind()方法将服务器的IP地址和端口号绑定到套接字上。然后,通过listen()方法开启监听模式,指定最大的连接数量为1。

在一个无限循环中,服务器通过accept()方法等待客户端的连接请求。一旦有客户端连接成功,服务器会打印出客户端的IP地址和端口号,并通过handle_client()函数处理客户端的请求。

handle_client()函数首先从客户端接收数据,然后打印出接收到的请求信息。接下来,服务器生成一个响应字符串,并通过send()方法将响应发送回客户端。最后,服务器关闭与该客户端的连接。

该服务器程序支持多个客户端的连接,但是每次只能处理一个客户端。若有多个客户端同时连接,服务器会依次处理每个客户端的请求。

要使用该服务器程序,可以运行上述代码,然后使用一个网络客户端(如Telnet或浏览器)连接到服务器的IP地址和端口号上。连接成功后,服务器会向客户端发送一条欢迎消息,并关闭与客户端的连接。

以上是一个简单的网络服务器程序的示例,它可以作为一个基础框架,可以根据实际需求进行扩展和改进。