上文中已经将大部分的复杂的用到的函数给解释了一下。刚刚看了一下http://blog.csdn.net/xukai871105/article/details/23615211里的地址转换原理,顿时又将其中两个一直不明白的地方函数给弄懂了,稍后会将这两个函数给补充完整,这样子,服务器端的代码就能大部分理解了。OK开始吧。先贴PROCESS_THREAD()的代码,将必要的进行注释。
PROCESS_THREAD(udp_server_process, ev, data)
{
#if UIP_CONF_ROUTER
uip_ipaddr_t ipaddr;
#endif /* UIP_CONF_ROUTER */
PROCESS_BEGIN();
PRINTF("UDP server started\n");
#if RESOLV_CONF_SUPPORTS_MDNS
resolv_set_hostname("contiki-udp-server");//设置主机的名字
#endif
#if UIP_CONF_ROUTER
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);//设置IPV6地址中后面部分的
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);//设置IPV6地址中的前面部分Initializer部分
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);//为地址的后面部分添加前缀
#endif /* UIP_CONF_ROUTER */
print_local_addresses();
server_conn = udp_new(NULL, UIP_HTONS(3001), NULL);
udp_bind(server_conn, UIP_HTONS(3000));
while(1) {
PROCESS_YIELD();
if(