Python实现TCP通讯
- 要实现Python-TCP通讯,你首先得连接到一个网络。
对于Python来讲,得连接到网络
对于MicroPython,就是开启一个AP或者以sta模式连接到一个网络
建立一个TCP-server
- TCP通讯依赖一个叫做socket的对象,实现TCP通讯的服务器有以下几个步骤:
- 建立一个TCP-socket对象
server_socket = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM) - 将对象绑定到一个端口上
server_socket.bind(('0.0.0.0', 8080)) - 等待客户端连接
client_socket, addr = server_socket.accept(),这个过程会阻塞直到有连接 - 收数据:
data = client_socket.recv(1024) - 发数据
client_socket.sendall('数据')或者client_socket.send('数据')【这两个的差别见最后】
- 完整代码:
import usocket as socket
server_socket = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 8080)) # 绑定到本地所有地址的8080端口
server_socket.listen(1) # 监听客户端连接
while True:
client_socket, addr = server_socket.accept() # 接受客户端连接
print('客户端已连接:', addr)
# 向客户端发送欢迎消息
client_socket.sendall(b'欢迎连接到MicroPython服务器!\n')
# 接收客户端发送的数据并打印
while True:
data = client_socket.recv(1024)
if not data:
break
print('接收到客户端消息:', data)
# 在这里可以添加处理接收到的数据的逻辑
# 关闭客户端连接
client_socket.close()
建立一个TCP客户端
- TCP的客户端(TCP_client)的使用分为如下几步:
- 建立客户端socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - 连接到服务器:
client_socket.connect((server_ip, server_port)) - 然后就可以实现收发:
- 收:
data = client_socket.recv(1024) - 发:
client_socket.sendall(数据)
- 收:
关键知识点
在服务器端涉及到2个类型的socket,一个是服务器接口的socket
server_socket,这个是总服务器,这个就类似于蚁后,只能下蛋但不能连接客户端。而client_socket就是下出来的蚂蚁,每一个client_socket都可以连接一个客户机。
作者:admin 创建时间:2024-05-09 09:17
最后编辑:admin 更新时间:2024-07-17 11:01
最后编辑:admin 更新时间:2024-07-17 11:01