centos

Python在CentOS上的网络编程指南

小樊
40
2025-08-21 00:15:03
栏目: 编程语言

一、环境准备

  1. 安装Python
    CentOS 7默认安装Python 2.7,建议升级至Python 3:

    sudo yum install python3  # 安装Python 3
    python3 --version  # 验证版本
    
  2. 安装依赖库

    • 编译网络相关库需安装开发工具:
      sudo yum groupinstall "Development Tools"
      sudo yum install openssl-devel
      
    • 使用pip3安装第三方库(如requests):
      pip3 install requests
      

二、基础网络编程

1. TCP通信(socket模块)

2. HTTP请求(requests库)

三、进阶网络编程

1. 异步I/O(asyncio库)

import asyncio
async def handle_client(reader, writer):
    data = await reader.read(100)
    if not data:
        return
    message = data.decode()
    print(f"Received: {message}")
    writer.write("Hello from server!".encode())
    await writer.drain()
    writer.close()

async def main():
    server = await asyncio.start_server(handle_client, '0.0.0.0', 12345)
    async with server:
        await server.serve_forever()

asyncio.run(main())

2. 多线程处理多个客户端

import socket
import threading

def handle_client(client_socket, address):
    print(f"Connected by {address}")
    data = client_socket.recv(1024).decode('utf-8')
    print(f"Received: {data}")
    client_socket.sendall("Hello from server!".encode('utf-8'))
    client_socket.close()

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 12345))
server_socket.listen(5)
print("Multi-threaded server started...")
while True:
    client_socket, client_address = server_socket.accept()
    client_thread = threading.Thread(target=handle_client, args=(client_socket, client_address))
    client_thread.start()

四、测试与调试

0
看了该问题的人还看了