Esempio n. 1
0
void TcpClient::handleRegisterAck(RecvStream *prs)
{
	RegisterAck ra;
	ra.fromStream(prs->stream, prs->size);
	WORD serialNumber = ra.sn;
	cout<<"sn:"<<ra.sn<<endl;
	pthread_mutex_lock(&mutexserialNumber);
	serialNumberList.push_front(serialNumber);
	pthread_mutex_unlock(&mutexserialNumber);

	if(ra.result == 0)
	{
		Authentication au;
		au.code = ra.authenticationCode;
		au.header.property = 12+au.code.length() +1;
		memcpy(au.header.phoneNumber, m_phoneNumber,6);
		Msg msg;
		unsigned char ori[1024];
		int len;
		len = au.toStream(ori);
		len = addCheckCode(ori,len);

		toComposedMsg(ori,len, msg.stream, &(msg.len));
		msg.resendTimes=0;
		msg.msgSerialNumber = au.header.msgSerialNumber;
		msg.sendChars = 0;
		msg.complete = false;
		pthread_mutex_lock(&mutex);
		msgList.push_front(msg);
		pthread_mutex_unlock(&mutex);

	}
}