【python】网络通信编程例子

发布于:2024-08-02 ⋅ 阅读:(46) ⋅ 点赞:(0)

以下是一个简单的 Python 示例,展示了如何在 Linux 下使用套接字进行基本的网络通信,包括创建服务器和客户端。

服务器端代码

import socket

# 创建一个IPv4 TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定服务器地址和端口
server_address = ('127.0.0.1', 12345)  # 服务器IP和端口
server_socket.bind(server_address)

# 开始监听连接
server_socket.listen(5)  # 最大连接数为5

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

while True:
    # 等待客户端连接请求
    client_socket, client_address = server_socket.accept()
    
    try:
        print(f"接收来自 {client_address} 的连接")
        
        # 接收客户端发送的数据
        data = client_socket.recv(1024)
        if data:
            print(f"接收到的数据:{data.decode('utf-8')}")
            
            # 发送响应数据给客户端
            response = "收到你的消息了"
            client_socket.sendall(response.encode('utf-8'))
        else:
            print("客户端断开连接")
            break
            
    finally:
        # 关闭客户端连接
        client_socket.close()

# 关闭服务器套接字
server_socket.close()

客户端代码

import socket

# 创建一个IPv4 TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接服务器地址和端口
server_address = ('127.0.0.1', 12345)  # 服务器IP和端口
client_socket.connect(server_address)

try:
    # 发送数据给服务器
    message = "你好,这是来自客户端的消息"
    client_socket.sendall(message.encode('utf-8'))
    
    # 接收服务器的响应数据
    data = client_socket.recv(1024)
    if data:
        print(f"接收到服务器的响应:{data.decode('utf-8')}")
        
finally:
    # 关闭客户端套接字
    client_socket.close()

示例说明

  • 服务器端:创建一个 TCP 套接字,绑定到本地地址(127.0.0.1)和指定端口(12345),然后开始监听连接。通过 accept() 方法接受客户端的连接请求,处理客户端发送的消息,并发送响应给客户端,最后关闭连接。

  • 客户端:创建一个 TCP 套接字,连接到指定的服务器地址和端口(与服务器相同),然后发送一条消息给服务器,接收服务器的响应并打印出来,最后关闭连接。

这个例子展示了基本的客户端-服务器模型,适用于本地的简单网络通信示例。在实际应用中,可能会涉及更复杂的网络协议和更多的错误处理逻辑。