cooja仿真,节点与外界互联网通信
cooja仿真,节点与外界互联网通信
1)在cooja选中一个节点,选中该节点,右键,
-> Mote tools for ContikiN // 这里N指的是节点编号
->Serial Socket(SerVER)...
点击后,会出现弹窗,如下所示:

这相当于在节点N上上创建了一个Socket服务器,该服务器端口是60002,这个可以自己决定,也可以就默认,然后点击start,Socket服务器启动
2) 寻找该Socket服务器的ip地址

因为我们是在docker中跑的,所以找到docker的ip地址,这里的172.17.0.1是主机的地址,还不是cooja的地址,cooja的ip地址应该是172.17.0.2
3) 连接通信,直接上代码
import socket
import sys
import time
address = ('172.17.0.2', 60002) # 服务端地址和端口
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect(address) # 尝试连接服务端
except Exception:
print('[!] Server not found ot not open')
sys.exit()
while True:
# trigger = input('Input: ')
# s.sendall(trigger.encode())
data = s.recv(1024)
data = data.decode()
print('[Recieved]', data)
time.sleep(3)
# if trigger == '###': # 自定义结束字符串
# break
s.close()
运行代码,此时cooja中,会显示连接建立

获取到的数据

注意 所有操作都在Ubuntu中进行

浙公网安备 33010602011771号