【得捷Follow me第4期】基础任务二:主控板建立TCPIP或UDP服务器
[复制链接]
本帖最后由 鲜de芒果 于 2024-2-22 12:34 编辑
3.1 任务说明
主控板建立TCPIP或UDP服务器,局域网PC使用TCPIP或UDP客户端进行连接并发送数据,主控板接收到数据后,送液晶屏显示(没有则通过串口打印显示);通过抓包软件抓取交互报文,展示并分析。(TCP和UDP二选一,或者全都操作)
3.2 代码实现
import asyncio
import binascii
from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K
import adafruit_wiznet5k.adafruit_wiznet5k_socket as socket
import task2
# Socket初始化
socket.set_interface(task2.eth)
# 建立Socket Server对象(TCP)
server = socket.socket()
# 建立Socket Server对象(UDP)
# server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 监听的IP地址
server_ip = None
# 监听 12345 端口
server_port = 12345
async def init():
# 绑定IP和端口
server.bind((server_ip, server_port))
# 启动服务监听
server.listen()
# 等待客户端连接
conn, addr = server.accept()
print("客户端已连接", addr)
while True:
task2.eth.maintain_dhcp_lease()
await asyncio.sleep(1)
with conn:
while True:
data = conn.recv(10)
if data:
print("Receive data: ", data)
# 将接收到的数据前面增加 server response: 再发送至客户端
conn.send(b"server response: " + data)
3.3 效果展示
3.4 总结
使用 CircuitPython 来开发 W5500-EVB-Pico 简直太方便了,短短几行代码即可实现 TCP 通信。
3.5 视频演示
3.6 抓包文件
tcp.pcapng
(2 MB, 下载次数: 0)
|