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

使用Python中的Server()函数实现网络通信

发布时间:2024-01-01 01:58:01

在Python中,可以使用socket模块中的Server()函数来实现网络通信。Server()函数用于创建服务器端的socket对象,并接受客户端的连接请求。

下面是一个使用Server()函数实现简单网络通信的例子:

import socket

def run_server():
    # 创建服务器端的socket对象
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 绑定IP地址和端口号
    server_address = ("127.0.0.1", 8888)
    server_socket.bind(server_address)
    # 设置最大连接数
    server_socket.listen(5)

    print("服务器已启动,等待客户端连接...")

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

        try:
            # 接收客户端发送的数据
            data = client_socket.recv(1024)
            print("接收到客户端的数据:", data.decode())

            # 向客户端发送数据
            response = "Hello, client!"
            client_socket.send(response.encode())
        except Exception as e:
            print("与客户端通信出现异常:", e)
        finally:
            # 关闭客户端连接
            client_socket.close()

if __name__ == "__main__":
    run_server()

在上述例子中,我们创建了一个简单的服务器,绑定了IP地址为127.0.0.1、端口号为8888的地址。然后使用Server()函数监听连接请求,并在接受到客户端的连接后,接收客户端发送的数据,并向客户端发送响应数据。

使用客户端可以通过以下代码向服务器发送数据并接收响应:

import socket

def run_client():
    # 创建客户端的socket对象
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 服务器的IP地址和端口号
    server_address = ("127.0.0.1", 8888)
    # 连接服务器
    client_socket.connect(server_address)

    try:
        # 向服务器发送数据
        request = "Hello, server!"
        client_socket.send(request.encode())

        # 接收服务器的响应数据
        response = client_socket.recv(1024)
        print("接收到服务器的数据:", response.decode())
    except Exception as e:
        print("与服务器通信出现异常:", e)
    finally:
        # 关闭与服务器的连接
        client_socket.close()

if __name__ == "__main__":
    run_client()

在上述客户端代码中,我们创建了一个客户端的socket对象,并通过connect()方法连接到服务器的IP地址和端口号。然后,使用send()方法向服务器发送数据,并使用recv()方法接收服务器的响应数据。

整个程序实现了简单的服务器和客户端的通信。当客户端向服务器发送数据后,服务器接收到数据并打印,然后向客户端发送响应数据。客户端接收到服务器的响应数据并打印。