Contiki节点A向另一个节点B发送数据,我希望节点A和B通过边界路由器向Linux上的服务器运行发送数据

Contiki node A sending data to another node B, I want node A and B to send data through border router to a server running on Linux

我可以通过边界路由器将数据从节点发送到 Linux 上的服务器代码 运行。我使用 https://github.com/contiki-os/contiki/blob/master/examples/udp-ipv6/udp-client.c example code from Contiki. I am running a python code to receive those data on Linux board, see this 实现了这一点。我们将一个节点NODE_A、第二个节点NODE_B和Linux板称为NODE_C。 NODE_A 和 NODE_B 数据到达 NODE_C,我也想让 NODE_A 和 NODE_B 互相交谈。我怎样才能让 NODE_A 和 NODE_B 互相交谈?谢谢!

在 NODE_A 编辑 udp_client.c 例如这样的 NODE_B 的地址:fd00::abcd:aaaa:bbbb, NODE_B: fd00:dddd:aaaa:bbbb NODE_C : fd00::1

uip_ipaddr_t NODE_B;
uip_ipaddr_t NODE_C;
uip_ip6addr(&NODE_C, 0xfd00, 0, 0, 0, 0, 0, 0, 1);
uip_ip6addr(&NODE_B, 0xfd00, 0, 0, 0, 0, 0xabcd, 0xaaaa, 0xbbbb);
/* new connection with remote host */
client_conn_NODE_B = udp_new(&NODE_C, UIP_HTONS(3000), NULL);
udp_bind(client_conn_NODE_B, UIP_HTONS(3001));
/* new connection with remote host */
client_conn_NODE_B = udp_new(&NODE_B, UIP_HTONS(3002), NULL);
udp_bind(client_conn_NODE_B, UIP_HTONS(3003));

于 NODE_B

uip_ipaddr_t NODE_A;
uip_ipaddr_t NODE_C;
uip_ip6addr(&NODE_C, 0xfd00, 0, 0, 0, 0, 0, 0, 1);
uip_ip6addr(&NODE_A, 0xfd00, 0, 0, 0, 0, 0xdddd, 0xaaaa, 0xbbbb);
/* new connection with remote host */
client_conn_NODE_B = udp_new(&NODE_C, UIP_HTONS(3000), NULL);
udp_bind(client_conn_NODE_B, UIP_HTONS(3001));
/* new connection with remote host */
client_conn_NODE_B = udp_new(&NODE_B, UIP_HTONS(3003), NULL);
udp_bind(client_conn_NODE_B, UIP_HTONS(3002));

NODE_C 是我的 Linux 开发板 我写了一个类似这样的测试代码

import socket, struct

UDP_LOCAL_IP = 'aaaa::1'
UDP_LOCAL_PORT = 5678

try:
    socket_rx = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
    socket_rx.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    socket_rx.bind((UDP_LOCAL_IP, UDP_LOCAL_PORT))
except Exception:
    print "ERROR: Server Port Binding Failed"

print 'UDP server ready: %s'% UDP_LOCAL_PORT
print

while True:
    data, addr = socket_rx.recvfrom(1024)
    print "address : ", addr
    print "received message: ", data
    print "\n"
    socket_rx.sendto("Hello from serevr\n", (UDP_REMOTE_IP, UDP_REMOTE_PORT))