OK, I've looked at your code. So your click_chatter() is not a reliable way
to tell whether the Packet::take() has succeeded. Remember that "%s" prints
a null-terminated string. You haven't added a null character so what it
prints could easily go off the end of the packet.
> click_chatter("data2= %s<-",data2);
Use IPPrint to see what the packet really contains.
Eddie