int TcpClient::start() { int ret = pthread_create(&sendRecvHandler, NULL, TcpClient::sendRecvMsg, this); if(ret != 0) { return ret; } ret = pthread_create(&recvHandler, NULL, TcpClient::recvMsg, this); if(ret != 0) { return ret; } unsigned char s[6] = {0x01,0x39,0x34,0x34,0x36,0x44}; unsigned char ori[1024]; PositionReport pr; setTime(pr.time); pr.header.msgId = 0x0200; pr.header.property = 28; pr.header.msgSerialNumber =222; memcpy(pr.header.phoneNumber ,s ,6); pr.speed = 18; pr.latitude =333000; pr.longitude = 567890; pr.altitude = 300; pr.direction=256; pr.status =0x7897; pr.warningMark =0; Msg msg; Register r; r.header.msgId = 0x0100; r.header.property = 31; r.header.msgSerialNumber =333; memcpy(r.header.phoneNumber ,s ,6); r.plateNumber="abcde"; int len; len = r.toStream(ori); len = addCheckCode(ori,len); toComposedMsg(ori,len, msg.stream, &(msg.len)); msg.resendTimes=0; msg.msgSerialNumber = r.header.msgSerialNumber; msg.sendChars = 0; msg.complete = false; pthread_mutex_lock(&mutex); msgList.push_front(msg); pthread_mutex_unlock(&mutex); len=pr.toStream(ori); len = addCheckCode(ori,len); toComposedMsg(ori,len,msg.stream, &(msg.len)); msg.msgSerialNumber = pr.header.msgSerialNumber; pthread_mutex_lock(&mutex); msgList.push_front(msg); pthread_mutex_unlock(&mutex); return 0; }