python实现socket客户端和服务端简单示例


当然,以下是一个简单的Python示例,展示了如何创建一个基本的socket服务端和客户端。服务端将监听一个端口,等待客户端的连接,并简单地回显(echo)接收到的消息。

### 服务端代码 (`server.py`)


import socket

def start_server(host='127.0.0.1', port=12345):
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
        server_socket.bind((host, port))
        server_socket.listen()
        print(f"Server is listening on {host}:{port}")

        conn, addr = server_socket.accept()
        with conn:
            print(f"Connected by {addr}")
            while True:
                data = conn.recv(1024)
                if not data:
                    break
                conn.sendall(data)  # Echo the data back to the client

if __name__ == "__main__":
    start_server()

### 客户端代码 (`client.py`)


import socket

def start_client(host='127.0.0.1', port=12345, message='Hello, server!'):
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
        client_socket.connect((host, port))
        client_socket.sendall(message.encode())

        data = client_socket.recv(1024)
        print(f'Received from server: {data.decode()}')

if __name__ == "__main__":
    start_client()

### 使用说明

1. 首先,确保你有一个Python环境。

2. 将上面的服务端代码保存为`server.py`,客户端代码保存为`client.py`。

3. 在一个命令行窗口中,运行服务端:`python server.py`。

4. 在另一个命令行窗口中,运行客户端:`python client.py`。

5. 客户端将向服务端发送一条消息,并接收来自服务端的回显消息。

这个示例展示了基本的socket通信流程,包括监听端口、接受连接、发送和接收数据。你可以根据需要修改这些示例,以实现更复杂的通信逻辑。