Python网络编程核心是掌握TCP(可靠连接,如文件上传)与UDP(轻量无连接,如视频流)的区别及应用;文中给出了TCP回声服务和UDP时间查询的完整可运行代码,并附调试技巧与进阶方向。
Python 网络编程不难上手,关键在理解 TCP 和 UDP 的本质区别,并用对场景。TCP 适合需要可靠传输的通信(比如文件上传、登录验证),UDP 更轻量,适合实时性要求高、能容忍少量丢包的场景(比如视频流、游戏状态同步)。下面直接从实战出发,带你写出可运行的客户端和服务器代码。
TCP 是面向连接的协议,通信前必须三次握手建立连接,传输中保证顺序和不丢失。写一个最简但完整的回声服务器(收到什么就发回什么)和客户端:
服务器端(server_tcp.py):
import socketserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(('127.0.0.1', 8080)) server.listen(1) print("TCP 服务器启动,等待连接...")
conn, addr = server.acce
pt() print(f"已连接客户端:{addr}")
while True: data = conn.recv(1024) if not data: break print(f"收到:{data.decode()}") conn.send(data) # 原样回传
conn.close() server.close()
客户端(client_tcp.py):
import socketclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect(('127.0.0.1', 8080))
msg = "Hello, TCP Server!" client.send(msg.encode()) response = client.recv(1024) print(f"服务器回复:{response.decode()}")
client.close()
运行顺序:先启动 server_tcp.py,再运行 client_tcp.py。注意两点:
UDP 不建连接、不重传、不排序,开销小,适合一对多、低延迟场景。下面实现一个单次请求-响应的“时间查询”服务:
服务器端(server_udp.py):
import socket import timeserver = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server.bind(('127.0.0.1', 8081)) print("UDP 服务器启动,监听 8081...")
while True: data, addr = server.recvfrom(1024) if data == b"time": now = time.strftime("%Y-%m-%d %H:%M:%S") server.sendto(now.encode(), addr)
客户端(client_udp.py):
import socketclient = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client.sendto(b"time", ('127.0.0.1', 8081)) response, _ = client.recvfrom(1024) print("当前时间:", response.decode())
client.close()
关键点:
写完跑不通?先查这几个地方:
掌握基础后,可按需延伸:
# linux
# python
# windows
# 编码
# 防火墙
# 端口
# ssl
# mac
# 中文乱码
# macos
# win
# dns
相关文章:
北京制作网站的公司,北京铁路集团官方网站?
如何在阿里云通过域名搭建网站?
深入理解Android中的xmlns:tools属性
如何设置并定期更换建站之星安全管理员密码?
宝塔面板创建网站无法访问?如何快速排查修复?
高防服务器租用如何选择配置与防御等级?
建站之星展会模板:智能建站与自助搭建高效解决方案
如何选择网络建站服务器?高效建站必看指南
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何在Windows虚拟主机上快速搭建网站?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
香港网站服务器数量如何影响SEO优化效果?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
制作网站的软件免费下载,免费制作app哪个平台好?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
ui设计制作网站有哪些,手机UI设计网址吗?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
装修招标网站设计制作流程,装修招标流程?
建站VPS能否同时实现高效与安全翻墙?
上海网站制作开发公司,上海买房比较好的网站有哪些?
威客平台建站流程解析:高效搭建教程与设计优化方案
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何用狗爹虚拟主机快速搭建网站?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何用西部建站助手快速创建专业网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何在建站宝盒中设置产品搜索功能?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
建站主机空间推荐 高性价比配置与快速部署方案解析
PHP正则匹配日期和时间(时间戳转换)的实例代码
建站之星免费版是否永久可用?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
建站之星安装步骤有哪些常见问题?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
如何快速重置建站主机并恢复默认配置?
内部网站制作流程,如何建立公司内部网站?
太原网站制作公司有哪些,网约车营运证查询官网?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
定制建站策划方案_专业建站与网站建设方案一站式指南
清除minerd进程的简单方法
如何高效利用200m空间完成建站?
Python文件管理规范_工程实践说明【指导】
如何在腾讯云服务器快速搭建个人网站?
济南专业网站制作公司,济南信息工程学校怎么样?
网站制作企业,网站的banner和导航栏是指什么?
如何在阿里云部署织梦网站?
C#怎么使用委托和事件 C# delegate与event编程方法
建站之星如何保障用户数据免受黑客入侵?
简历在线制作网站免费版,如何创建个人简历?
如何在IIS中配置站点IP、端口及主机头?
*请认真填写需求信息,我们会在24小时内与您取得联系。