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

Python实现的简单网络服务器程序示例

发布时间:2023-12-04 21:40:06

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

import socket

def server_program():
    # 获取本地主机名
    host = socket.gethostname()
    port = 5000  # 设置端口号

    # 创建套接字对象
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 绑定主机名和端口号
    server_socket.bind((host, port))
    # 设置最大连接数
    server_socket.listen(2)

    # 接收客户端连接
    client_socket, client_address = server_socket.accept()
    print('连接地址:', client_address)

    while True:
        # 接收数据
        data = client_socket.recv(1024).decode()
        if not data:
            # 如果没有数据则退出循环
            break
        print('接收到的数据:', data)

        # 发送响应数据
        client_socket.send('服务端已收到你的消息'.encode())

    # 关闭连接
    client_socket.close()


if __name__ == '__main__':
    server_program()

这个程序创建了一个网络服务器,监听本地主机的5000端口。它接受客户端的连接,并接收客户端发来的消息,然后发送一个简单的响应。运行这个程序后,你可以使用以下代码作为客户端来测试服务器:

import socket

def client_program():
    # 获取主机名和端口号
    host = socket.gethostname()
    port = 5000

    # 创建套接字对象
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 连接服务器
    client_socket.connect((host, port))

    message = input('请输入要发送的消息:')

    while message.lower().strip() != 'bye':
        # 发送消息
        client_socket.send(message.encode())
        # 接收响应
        data = client_socket.recv(1024).decode()
        print('接收到的数据:', data)

        message = input('请输入要发送的消息:')

    # 关闭连接
    client_socket.close()


if __name__ == '__main__':
    client_program()

这个客户端程序连接到服务器,并允许用户输入要发送的消息。它将消息发送给服务器,然后等待服务器的响应。当用户输入“bye”时,客户端程序将关闭连接。

你可以先运行服务器程序,然后再运行客户端程序。在客户端程序的命令行界面中输入消息后,你将在服务器的命令行界面中看到消息。服务器会向客户端发送一个响应,响应是在客户端的命令行界面中显示的。