目前就是想从电脑网卡读取单片机发送过来的数据,并且进行处理,再通过局域网转发给另外的电脑。请问要用什么模块什么方式来实现
2条回答 默认 最新
- CSDN专家-sinJack 2023-05-25 12:35关注
- 创建一个socket对象,指定socket类型为AF_PACKET,协议类型为ETH_P_ALL,这样可以捕获所有的数据包。
import socket s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs(0x0003))
- 使用recvfrom()方法从网卡中读取数据包,该方法返回一个元组,包含数据包的内容和源地址信息。
packet, addr = s.recvfrom(65535)
- 对数据包进行处理,例如解析数据包的协议头、提取数据等。
- 使用sendto()方法将处理后的数据包发送给目标电脑。
使用socket模块需要管理员权限,否则无法读取网卡数据。s.sendto(data, (dest_ip, dest_port))
解决 无用评论 打赏 举报 - 创建一个socket对象,指定socket类型为AF_PACKET,协议类型为ETH_P_ALL,这样可以捕获所有的数据包。
悬赏问题
- ¥15 郑州牧原测试岗值得去吗
- ¥100 复现论文:matlab仿真代码编写
- ¥15 esp32驱动GC9A01循环播放视频
- ¥15 惠普360g9的最新bios
- ¥30 这个功能用什么软件发合适?
- ¥60 微信小程序,取消订单,偶尔订单没有改变状态
- ¥15 用pytorch实现PPO算法
- ¥15 关于调制信号的星座图?
- ¥30 前端传参时,后端接收不到参数
- ¥15 这是有什么问题吗,我检查许可证了但是显示有呢