Python实现常见网络通信的示例详解 python 网络应用目录一、HTTP/HTTPS 通信1. 客户端示例(requests 库)2. 服务端示例(Flask)二、UDP 通信1. 服务端2. 客户端三、WebSocket 通信1. 服务端2. 客户端四、Server-Sent Events (SSE)1. 服务端(Flask 实现)2. 客户端关键点说明一、HTTP/HTTPS 通信1. 客户端示例(requests 库)import requests HTTP GETresponse = requests.get(‘http://httpbin.org/get’)print(response.text) HTTPS POSTresponse = requests.post( ‘https://httpbin.org/post’, data=’key’: ‘value’}, verify=True 验证 SSL 证书(默认))print(response.json())2. 服务端示例(Flask)from flask import Flask, requestapp = Flask(__name__)@app.route(‘/api’, methods=[‘GET’, ‘POST’])def handle_request(): if request.method == ‘GET’: return ‘message’: ‘GET received’} elif request.method == ‘POST’: return ‘data’: request.json}if __name__ == ‘__main__’: app.run(ssl_context=’adhoc’) 启用 HTTPS二、UDP 通信1. 服务端import socketserver = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)server.bind((‘0.0.0.0′, 9999))while True: data, addr = server.recvfrom(1024) print(f”Received from addr}: data.decode()}”) server.sendto(b’UDP response’, addr)2. 客户端import socketclient = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)client.sendto(b’Hello UDP’, (‘localhost’, 9999))response, addr = client.recvfrom(1024)print(f”Received: response.decode()}”)三、WebSocket 通信需要安装库:pip install websockets1. 服务端import asyncioimport websocketsasync def handler(websocket): async for message in websocket: print(f”Received: message}”) await websocket.send(f”Echo: message}”)async def main(): async with websockets.serve(handler, “localhost”, 8765): await asyncio.Future() 永久运行asyncio.run(main())2. 客户端import asyncioimport websocketsasync def client(): async with websockets.connect(“ws://localhost:8765”) as ws: await ws.send(“Hello WebSocket!”) response = await ws.recv() print(f”Received: response}”)asyncio.run(client())四、Server-Sent Events (SSE)需要安装库:pip install sseclient-py1. 服务端(Flask 实现)from flask import Flask, Responseapp = Flask(__name__)@app.route(‘/stream’)def stream(): def event_stream(): for i in range(5): yield f”data: Message i}nn” return Response(event_stream(), mimetype=”text/event-stream”)if __name__ == ‘__main__’: app.run()2. 客户端import requestsfrom sseclient import SSEClienturl = ‘http://localhost:5000/stream’response = requests.get(url, stream=True)client = SSEClient(response)for event in client.events(): print(f”Received event: event.data}”)关键点说明HTTP/HTTPS:最常用的请求-响应模型UDP:无连接协议,适合实时性要求高的场景WebSocket:全双工通信协议,适合实时双向通信SSE:服务器到客户端的单向推送技术安全建议:HTTPS 使用 requests 的 verify=True 验证证书WebSocket 使用 wss:// 安全协议生产环境应使用正式 SSL 证书根据具体需求选择协议:简单数据请求:HTTP/HTTPS实时游戏/视频:UDP聊天应用:WebSocket实时通知:SSE建议根据实际场景配合使用异步框架(如 aiohttp、FastAPI)以获得更好的性能。到此这篇关于Python实现常见网络通信的示例详解的文章就介绍到这了,更多相关Python网络通信内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 无论兄弟们可能感兴趣的文章:Python网络编程之网络与通信介绍Python?基于TCP?传输协议的网络通信实现技巧Python制作简易聊天器,搭建UDP网络通信模型python网络通信图文详解分析python并发网络通信模型Python中socket网络通信是干嘛的Python socket网络编程TCP/IP服务器与客户端通信

版权声明

上一篇:

下一篇:

为您推荐