Пример #1
0
	void CNetClient::sendDefMsg(int mIdent, int mRecog, int mParam, int  mTag,int mSeries, const char *str, bool strEncode,const char* adddata)
	{
		memset(&m_SendData[0],0,sizeof(m_SendData));
		char buf[8];
		char bf = '#';
		char ef = '!';
		DEFAULTMESSAGE msg;
		MAKEDEFMSG(&msg, mIdent,mRecog, mParam, mTag,mSeries);
		int n = EncodeDefMessage(mEncodeBuf, &msg);
		int nLen = 0;
		char* pSendData = &m_SendData[0];
		pSendData[0] = bf; nLen ++;
		sprintf(buf,"%d",msgCode);
		//itoa(msgCode, buf, 10);
		pSendData[1] = buf[0];
		nLen ++;
		//pSendData[1] = msgCode;nLen ++;
		pSendData += 2;
		memcpy(pSendData,mEncodeBuf,n);
		pSendData += n;
		nLen += n;

		if (str != NULL)
		{
			if (strlen(str) > 0)
			{
				if (strEncode)
				{
					n = fnEncode6BitBuf((char*)str, mEncodeBuf, strlen(str), sizeof(mEncodeBuf) - n);
					memcpy(pSendData,mEncodeBuf,n);
					pSendData += n;
					nLen += n;

				}
				else
				{
					memcpy(pSendData,str,strlen(str));
					pSendData += strlen(str);
					nLen += strlen(str);
				}
			}
		}
		if(adddata)
		{
			int len = strlen(adddata);
			memcpy(pSendData,adddata,len);
			pSendData += len;
			nLen += len;
		}
		*pSendData = ef;
		nLen ++;
		m_Socket->SendMsg(&m_SendData[0],nLen);
		msgCode ++;
		if (msgCode >= 10) msgCode = 1;
	}
Пример #2
0
VOID CClientSocket::SendPacket(_TDEFAULTMESSAGE* lpDefMsg, char *pszData)
{
	fnEncodeMessage(lpDefMsg, m_szEncodeDefMsg, sizeof(m_szEncodeDefMsg));

	((m_nSync >= 9) ? m_nSync = 1 : m_nSync++);

	if (pszData)
	{
		fnEncode6BitBuf((unsigned char *)pszData, m_szEncodeBody, strlen(pszData), sizeof(m_szEncodeBody));
		sprintf(m_szPacket, "#%d%s%s!", m_nSync, m_szEncodeDefMsg, m_szEncodeBody);
	}
	else
		sprintf(m_szPacket, "#%d%s!", m_nSync, m_szEncodeDefMsg);

	send(m_sockClient, m_szPacket, strlen(m_szPacket), 0);
}
Пример #3
0
VOID CClientSocket::SendRunLogin(CHAR* szLoginID, CHAR* szCharName, INT nCertification, INT VersionNum)
{
	CHAR				szEncodeMsg[512];
	CHAR				szLoginInfo[512];
	CHAR				szPacket[512];

	wsprintf(szLoginInfo, "**%s/%s/%d/%d/1", szLoginID, szCharName, nCertification, VersionNum);

	int nPos = fnEncode6BitBuf((BYTE*)szLoginInfo, szEncodeMsg, lstrlen(szLoginInfo), sizeof(szEncodeMsg));
	szEncodeMsg[nPos] = '\0';

	((m_nSync >= 9) ? m_nSync = 1 : m_nSync++);
	wsprintf(szPacket, "#%d%s!", m_nSync, szEncodeMsg);

	send(m_sockClient, szPacket, strlen(szPacket), 0);
}
Пример #4
0
	void CNetClient::sendSocket(char *buf, int size, bool strEncode)
	{
		memset(m_SendData,0,sizeof(m_SendData));
		int n;
		if (buf == NULL || size < 3) return;
		char* pSendData = &m_SendData[0];
		int nLen = 0;
		char bf = '#';
		char ef = '!';
		pSendData[0] = bf;nLen ++;
		char buf_[8];
		sprintf(buf_,"%d",msgCode);
		//itoa(msgCode, buf_, 10);
		pSendData[1] = buf_[0];
		nLen++;
		pSendData += 2;
		if (size > 0)
		{
			if (strEncode)
			{
				n = fnEncode6BitBuf((char*)buf, mEncodeBuf, size, sizeof(mEncodeBuf));
				memcpy(pSendData,mEncodeBuf,n);
				pSendData += n; nLen += n;
			}
			else
			{
				memcpy(pSendData,buf,size);
				pSendData += size;nLen += size;

			}
		}
		*pSendData = ef; nLen ++;
		m_Socket->SendMsg(&m_SendData[0],nLen);
		msgCode ++;
		if (msgCode >= 10) msgCode = 1;
	}