在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。
现在,有趣的事情发生了。回头看看运行服务器端的那个终端窗口,你应该能看到客户端连接成功的提示,以及它发来的那条问候消息。紧接着,客户端终端也会打印出服务器返回的确认信息。瞧,一次完整的本地网络“对话”就这样轻松实现了。
这当然只是一个最基础的起点。但正所谓万丈高楼平地起,基于这个清晰的骨架,你可以自由地扩展功能,比如加入多线程处理并发连接、定义更复杂的通信协议,或者增加数据加密——网络编程的世界,从此对你敞开大门。
