MAC层上的Micropython原始套接字

问题描述 投票:0回答:1

如何在Micropython中的MAC层上创建原始套接字?

UNIX等价物是:

eth_p_all=3
netif='wlan0'
s=socket.socket(socket.AF_PACKET,socket.SOCK_RAW,socket.htons(eth_p_all))
s.bind((netif,0))

首先,目前尚不清楚如何获取接口名称,并且没有socket.AF_PACKETsocket.htons

因此,如果没有办法使用库存库或固件,我应该选择哪些库,或者是否需要修改固件,我应该如何修改固件?

sockets esp8266 ethernet raw-sockets micropython
1个回答
0
投票

当前的upy固件没有原始套接字实现。哟可以检查以下行。已从modlwip.c中删除原始套接字分派

https://github.com/micropython/micropython/blob/68a5d6fe7746850ce049b8bf295bfce1382383f3/extmod/modlwip.c#L712

如果您想自己修改固件,可以按照步骤操作。

  • 检查平台的源SDK支持原始套接字。 (例如,cc3200使用TI的cc3200 SDK并支持原始套接字)
  • 修改modlwip.c

有一个非官方端口(realtek的ameba系列)支持原始套接字。你可以从这个开始。

https://github.com/wylinks/micropython-ameba/blob/ameba/ports/ameba/mphelper/mods/modlwip.c

© www.soinside.com 2019 - 2024. All rights reserved.