《嵌入式物联网应用技术实践教程》_第 12 章 Contiki 无线网络.pptVIP

  • 0
  • 0
  • 约3.71万字
  • 约 138页
  • 2026-02-13 发布于广东
  • 举报

《嵌入式物联网应用技术实践教程》_第 12 章 Contiki 无线网络.ppt

图12-18802.15.4节点IPv6组网原理返回图12-19RPL组网实现目录架构返回图12-20蓝牙节点IPv6组网原理返回图12-21配置蓝牙网络返回图12-22WiFi节点IPv6组网原理返回图12-23网关修改WiFiAP名称返回图12-24UDP服务器(左)和客户端(右)程序运行流程返回图12-25UDP服务器端(左)和客户端(右)通信信息返回图12-26TCP服务器程序流程返回图12-28PC端程序流程返回图12-30PC端程序流程返回表12-3protoSocket编程常用函数返回图12-32protoSocket服务器端与客户端通信信息返回12.4节点间通信第2次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。第3次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入Established状态,完成3次握手。5.TCP与UDPUDP协议和TCP协议的主要区别是两者在实现信息的可靠传递方面不同。TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其他信息,否则将一直等待,直到收到确认信息为止。上一页下一页返回12.4节点间通信6.Contiki中TCP编程介绍tcp_listen()函数用在服务器程序中时负责监听一个指定的端口,然后等待客户程序的连接。uip_newdata()函数用来判断是否收到新的数据,如果收到数据,数据将被存放在uip_appdata()指向的内存中,其长度由uip_datalen()函数指出。tcp_connect()函数在客户端程序中用来连接到服务器,该函数接收3个参数:第1个是服务器的IP地址,第2个是服务器端口号,第3个是应用程序状态信息。当客户程序连接到服务器后客户程序会收到一个tcpip_event事件,通过uip_connected()函数可以判断连接是否成功。如果连接成功就可以同服务器进行收发数据。uip_send()函数实现数据的发送,该函数接收2个参数:第1个参数是要发送数据的内存地址,第2个参数是要发送数据的长度。当TC收到数据后会通过tcpip_event事件来通知应用程序,应用程序通过uip_newdata()函数来检查是否收到数据。TCP服务器程序流程如图12-26所示。上一页下一页返回12.4节点间通信12.4.3节点与PC间UDP通信节点与PC间UDP通信主要通过UDP协议。PC端程序流程如图12-28所示。PC端程序udp-pc\UDPClient.java实现如下:importjava.io.*;import.*;classUDPClient{publicstaticvoidmain(String[]args)throwsIOException{if(args.length3){System.out.println(UDPClientserveripserverportmessagetosend);上一页下一页返回12.4节点间通信System.exit(0);}Stringserver_ip=args[0];intserver_port=Integer.parseInt(args[1]);Stringmsg=args[2];DatagramSocketclient=newDatagramSocket();//创建UDPsocketbyte[]sendBuf=msg.getBytes();InetAddressaddr=InetAddress.getByName(server_ip);StringrecvStr=newString(recvPacket.getData(),0,recvPacket.getLength());System.out.println(server_ip++recvStr);上一页下一页返回12.4节点间通信client.close();}}12.4.4节点与PC间TCP通信节点与P

文档评论(0)

1亿VIP精品文档

相关文档