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; }
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); }
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); }
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; }