Ubuntu系统下Python网络编程入门与实践指南
在Ubuntu中进行Python网络编程
想在Ubuntu里玩转Python网络编程?其实没那么复杂。Python自带的socket库就是一个相当趁手的工具,能帮你快速搭建起网络通信的基础框架。下面,咱们就通过一个经典的TCP服务器与客户端对话的例子,来直观感受一下整个过程。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
TCP服务器
首先,从搭建服务器端开始。这个过程就像为一场对话准备好接听电话的房间和线路。
- 打开你常用的文本编辑器,新建一个文件,不妨命名为
tcp_server.py。 - 将下面的代码块复制进去。这段代码清晰地展示了服务器从创建、绑定、监听,到接收数据并回应的完整生命周期:
import socket
# 创建一个socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口
server_host = '127.0.0.1'
server_port = 12345
server_socket.bind((server_host, server_port))
# 监听连接
server_socket.listen(5)
print(f"[*] Listening on {server_host}:{server_port}")
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print(f"[+] {client_address} is connected.")
# 接收数据
data = client_socket.recv(1024).decode('utf-8')
print(f"[+] Received message: {data}")
# 发送数据
response = f"[*] Server received: {data}"
client_socket.send(response.encode('utf-8'))
# 关闭客户端连接
client_socket.close()
- 保存文件,然后打开终端,切换到文件所在目录,运行命令:
python3 tcp_server.py。看到监听提示,就意味着你的服务器已经准备就绪,在默默等待客户端的“敲门”了。
TCP客户端
服务器端准备妥当,接下来就该客户端登场了。它的任务很明确:找到服务器,打个招呼,然后等待回应。
- 同样,新建一个文件,命名为
tcp_client.py。 - 复制下面的客户端代码。这段代码逻辑直接:建立连接、发送消息、接收反馈、然后礼貌告别:
import socket
# 创建一个socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
server_host = '127.0.0.1'
server_port = 12345
client_socket.connect((server_host, server_port))
# 发送数据
message = "Hello, this is the client."
client_socket.send(message.encode('utf-8'))
# 接收数据
data = client_socket.recv(1024).decode('utf-8')
print(f"[+] Received from server: {data}")
# 关闭客户端连接
client_socket.close()
- 保存文件。这时,请新开一个终端窗口,运行命令:
python3 tcp_client.py。
现在,有趣的事情发生了。回头看看运行服务器端的那个终端窗口,你应该能看到客户端连接成功的提示,以及它发来的那条问候消息。紧接着,客户端终端也会打印出服务器返回的确认信息。瞧,一次完整的本地网络“对话”就这样轻松实现了。
这当然只是一个最基础的起点。但正所谓万丈高楼平地起,基于这个清晰的骨架,你可以自由地扩展功能,比如加入多线程处理并发连接、定义更复杂的通信协议,或者增加数据加密——网络编程的世界,从此对你敞开大门。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
C++跨平台获取程序运行路径的Windows与Linux实现方法
C++如何获取当前程序运行路径:Windows与Linux跨平台实现【干货】 Windows 用 GetModuleFileNameA 获取可执行文件绝对路径,Linux 用 readlink( " proc self exe ") 读取符号链接,两者均需截断至目录部分;禁用 getcwd() 和不可靠
C++跨平台文件隐藏功能实战实现教程
C++如何实现跨平台的文件隐藏功能设置【实战】 在跨平台开发中,文件隐藏是一个典型的“概念断层”问题。Windows通过SetFileAttributes设置FILE_ATTRIBUTE_HIDDEN属性实现文件隐藏,macOS Linux则依赖以 开头的命名约定;跨平台无法统一抽象,必须按系统分别
Golang实现API文档自动同步的方法与步骤详解
Go项目API文档自动同步:从生成到分发的实战解析 在Go项目中实现API文档的自动同步,真正的挑战往往不在于工具链本身,而在于能否将「文档生成」与「文档分发」这两个环节彻底解耦,并实现全流程的脚本化。手动执行一次swag init命令,或者在本地浏览器里打开 swagger index html查
C++深度解析Bencode编码中的嵌套列表与字典结构
Bencode嵌套结构解析:从字符流到健壮实现的四个关键点 先明确一个核心事实:Bencode的嵌套结构完全由i、l、d和e这几个字符显式界定,它不依赖缩进或换行这种对人类友好的格式。这意味着,解析器必须像最严格的语法分析器一样,顺序扫描字符流,精准匹配每一个开始和结束标记。 识别 Bencode
Pydantic Literal字段空字符串处理与默认值回退方法
Pydantic 中如何为 Literal 字段处理空字符串并自动回退到默认值 当 Pydantic 字段使用 Literal 类型(如 "enabled " | "disabled ")时,空字符串 " " 会直接触发类型校验失败,而非应用默认值;本文介绍通过 @field_validator(mode
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

