在计算机网络的世界里,Socket 编程是实现不同计算机之间通信的一种基础而强大的方式。Python 作为一种广泛使用的编程语言,其内置的 socket 库使得进行网络编程变得简单而直观。本文将带你走进 Python Socket 编程的世界,通过构建简单的客户端和服务器应用来演示其基本原理。

一、Socket 编程基础
Socket(套接字)是网络通信过程中的一个端点,它提供了进行网络通信的接口。在 TCP/IP 网络中,Socket 可以被看作是 IP 地址和端口号的组合。通过 Socket,两台计算机上的应用程序可以进行数据交换。
Socket 编程通常分为两个主要部分:服务器端(Server)和客户端(Client)。服务器端负责监听来自客户端的连接请求,并处理这些请求;客户端则主动向服务器发起连接请求,并发送或接收数据。
二、Python Socket 编程实例
1. 服务器端
服务器端程序需要完成以下步骤:
- 创建一个 socket 对象。
- 绑定 socket 到指定的 IP 地址和端口号。
- 监听来自客户端的连接请求。
- 接受连接,并创建一个新的 socket 对象来处理与客户端的通信。
- 接收和发送数据。
- 关闭 socket 连接。
下面是一个简单的 TCP 服务器示例:
import socket 
# 创建 socket 对象 
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 绑定 IP 地址和端口号 
host = '127.0.0.1' # 本地主机 
port = 12345 # 端口号 
server_socket.bind((host, port)) 
# 开始监听 
server_socket.listen() 
print("服务器启动,等待连接...") 
# 接受连接 
conn, address = server_socket.accept() 
print(f"连接地址: {address}") 
# 接收数据 
while True: 
data = conn.recv(1024) # 接收最多1024字节的数据 
if not data: 
break 
print(f"收到数据: {data.decode()}") 
conn.sendall(data) # 回发数据 
# 关闭连接 
conn.close() 
server_socket.close()2. 客户端
客户端程序需要完成以下步骤:
- 创建一个 socket 对象。
- 连接到服务器(指定服务器的 IP 地址和端口号)。
- 发送和接收数据。
- 关闭 socket 连接。
下面是一个简单的 TCP 客户端示例:
import socket 
# 创建 socket 对象 
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 连接到服务器 
host = '127.0.0.1' # 服务器 IP 地址 
port = 12345 # 端口号 
client_socket.connect((host, port)) 
# 发送数据 
client_socket.sendall(b'Hello, Server!') 
# 接收数据 
data = client_socket.recv(1024) 
print(f"收到服务器的响应: {data.decode()}") 
# 关闭连接 
client_socket.close()三、注意事项
- 在实际部署中,IP 地址通常不是 '127.0.0.1',而是服务器的公网 IP 或局域网内可访问的 IP。
- 端口号应选择一个未被占用的端口。
- 在处理网络数据时,应考虑数据的编码(如 UTF-8)和解码问题。
- 异常处理是网络编程中不可或缺的一部分,应适当添加 try-except 块来处理可能出现的错误。
四、总结
通过本文,我们了解了 Python Socket 编程的基本概念和流程,并通过构建简单的 TCP 服务器和客户端应用,展示了如何使用 Python 进行网络通信。Socket 编程是理解和实现网络通信的基石,掌握它对于开发复杂的网络应用至关重要。随着对 Socket 编程的深入学习,你将能够构建出更加复杂和功能丰富的网络应用。












![[ BLE4.0 ] 伦茨ST17H66开发-ADC采集电压数据-ADC中断采集-ADC单端输入与差端输入](https://i-blog.csdnimg.cn/direct/33fcc71f45ef46689663065f0b531c8c.png)






