我试图了解 Radio.cc 的行为(在 inet/physicallayer/common/packetlevel/ 中)。
我特别想知道它如何检测碰撞。
我希望是这样的:
if(radio==IDLE and newFrame arrives){
radio = RECEIVING;
startReception();
}
else
if(radio==RECEIVING and newFrame arrives)
impossible to receive --> COLLISION! --> stop()
Run Code Online (Sandbox Code Playgroud)
但是对于我所看到的,如果两个帧同时到达接收器,第一个的接收是'接收开始:忽略',第二个被传递到 MAC 层,它说'包含位错误或冲突,放下它'(IdealMac)。
我的问题是,接收器不应该阻塞两个帧(因为它不能同时接收两个)或将它们都传递给上层 MAC 层,然后将它们作为错误帧读取?
我想在 Python 中实现一个 RAW 套接字,然后将数据从客户端发送到服务器。
与普通套接字不同,我尝试使用以下定义
s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW)
Run Code Online (Sandbox Code Playgroud)
但命令为
s.listen(1), s.connect()
Run Code Online (Sandbox Code Playgroud)
不工作。我不知道如何对 Client.py 和 Server.py 进行编程。有人能帮我吗?