cooja仿真,节点与外界互联网通信

cooja仿真,节点与外界互联网通信

1)在cooja选中一个节点,选中该节点,右键,
-> Mote tools for ContikiN // 这里N指的是节点编号
 ->Serial Socket(SerVER)...
点击后,会出现弹窗,如下所示:
image
这相当于在节点N上上创建了一个Socket服务器,该服务器端口是60002,这个可以自己决定,也可以就默认,然后点击start,Socket服务器启动
2) 寻找该Socket服务器的ip地址
image
因为我们是在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中,会显示连接建立
image

获取到的数据
image

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

posted @ 2021-10-21 13:41  aliving  阅读(342)  评论(0)    收藏  举报