uip_ipaddr(&addr, 192,168,1,2);
  uip_sethostaddr(&addr);
 
  uip_ipaddr(&addr, 192,168,1,2);
  uip_sethostaddr(&addr);
  uip_ipaddr(&addr, 192,168,2,1);
  c = uip_udp_new(&addr, HTONS(12345));
  if(c != NULL) {
  uip_ipaddr(&addr, 192,168,2,1);
  c = uip_udp_new(&addr, HTONS(12345));
  if(c != NULL) {
  uip_ipaddr(&ipaddr, 192,168,1,2);
  c = uip_connect(&ipaddr, HTONS(80));
  \endcode
  uip_ipaddr(&ipaddr, 192,168,1,2);
  c = uip_connect(&ipaddr, HTONS(80));
  \endcode
   u16_t lport;        /**< The local TCP port, in network byte order. */
   u16_t rport;        /**< The local remote TCP port, in network byte
                         order. */
   u16_t lport;        /**< The local TCP port, in network byte order. */
   u16_t rport;        /**< The local remote TCP port, in network byte
                         order. */
   u8_t rcv_nxt[4];    /**< The sequence number that we expect to
                         receive next. */
   u8_t snd_nxt[4];    /**< The sequence number that was last sent by
   u8_t rcv_nxt[4];    /**< The sequence number that we expect to
                         receive next. */
   u8_t snd_nxt[4];    /**< The sequence number that was last sent by
   /* The following flags are passed as an argument to the uip_process()
    function. They are used to distinguish between the two cases where
    uip_process() is called. It can be called either because we have
    incoming data that should be processed, or because the periodic
    timer has fired. These values are never used directly, but only in
    the macros defined in this file. */
   /* The following flags are passed as an argument to the uip_process()
    function. They are used to distinguish between the two cases where
    uip_process() is called. It can be called either because we have
    incoming data that should be processed, or because the periodic
    timer has fired. These values are never used directly, but only in
    the macros defined in this file. */
 #define UIP_DATA          1     /* Tells uIP that there is incoming
                                   data in the uip_buf buffer. The
                                   length of the data is stored in the
 #define UIP_DATA          1     /* Tells uIP that there is incoming
                                   data in the uip_buf buffer. The
                                   length of the data is stored in the
   u16_t ipchksum;
   uip_ipaddr_t srcipaddr, destipaddr;
 #endif /* UIP_CONF_IPV6 */
   u16_t ipchksum;
   uip_ipaddr_t srcipaddr, destipaddr;
 #endif /* UIP_CONF_IPV6 */
   u16_t ipchksum;
   uip_ipaddr_t srcipaddr, destipaddr;
 #endif /* UIP_CONF_IPV6 */
   u16_t ipchksum;
   uip_ipaddr_t srcipaddr, destipaddr;
 #endif /* UIP_CONF_IPV6 */
   u16_t ipchksum;
   uip_ipaddr_t srcipaddr, destipaddr;
 #endif /* UIP_CONF_IPV6 */
   u16_t ipchksum;
   uip_ipaddr_t srcipaddr, destipaddr;
 #endif /* UIP_CONF_IPV6 */
    (((a)->u8[13]) == (m)->addr[3]) &&            \
    (((a)->u8[14]) == (m)->addr[4]) &&            \
    (((a)->u8[15]) == (m)->addr[5]))
    (((a)->u8[13]) == (m)->addr[3]) &&            \
    (((a)->u8[14]) == (m)->addr[4]) &&            \
    (((a)->u8[15]) == (m)->addr[5]))