发送数据
CString bodyDesc;
m_Content.GetWindowText(bodyDesc);
SendData2("怪兽乐园", 23, bodyDesc);
void CClientDlg::SendData2(LPCSTR bodyName, short bodyAge, CString bodyDesc)
{
static DWORD SEQ = 0;
USES_CONVERSION;
LPCSTR name = bodyName;
LPCSTR desc = T2A((LPCTSTR)bodyDesc);
int desc_len = (int)strlen(desc) + 1;
int body_len = offsetof(TPkgBody, desc) + desc_len;
TPkgBody* pBody = (TPkgBody*)_alloca(body_len);
memset(pBody, 0, body_len);
pBody->age = bodyAge;
strcpy(pBody->name, name);
strcpy(pBody->desc, desc);
TPkgHeader header;
header.seq = ++SEQ;
header.body_len = body_len;
WSABUF bufs[2];
bufs[0].len = sizeof(TPkgHeader);
bufs[0].buf = (char*)&header;
bufs[1].len = body_len;
bufs[1].buf = (char*)pBody;
if (m_Client->SendPackets(bufs, 2)) //发送多组数据(2组)
::LogSend(m_Client->GetConnectionID(), bodyDesc);
else
::LogSendFail(m_Client->GetConnectionID(