📄 net_cmd.cpp
字号:
#include "stdafx.h"
#include "net_cmd.h"
net_cmd::net_cmd()
{
shakehandexit = false;
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2,2),&wsaData)) //调用Windows Sockets DLL
{
WSACleanup();
return;
}
pnet = NULL;
create();
}
net_cmd::~net_cmd()
{
}
//
bool net_cmd::create()
{
threadstart(THREAD_PRIORITY_NORMAL);
initnet();
return true;
}
//发送命令数据
bool net_cmd::sendcmddata( char * databuf, int datalen,unsigned long ip,unsigned short prot)
{
if(pnet)
{
pnet->senddata(databuf, datalen,ip,prot);
return true;
}
return true;
}
//处理接收到的数据并产生相应消息
void net_cmd::dealrecvdata(SOCKET socket, char *pbuf, int length, ULONG ip, USHORT port)
{
char cmd;
USHORT datalen;
char pdata[100];
int i = 0;
for( i = 0;i < length ; i ++)
pdata[i] = pbuf[i];
pdata[i] = 0;
//获取命令数据长度,用*pdatale保存真实数据的长度 *pdata指向真实数据开始位置,cmd保存命令
/*bool mbool = GetDataCmdandLength(pbuf, length, &datalen, &cmd, &pdata);
if(!mbool)
return ;
conncetedserverinfo * pcon = findconncetedserver(ip, port);
if(pcon == NULL)
return ;
int id = GetTheID(pbuf, length);//(pbuf="MTVD"+id+cmd+data.len+data)
if(pcon->netid != id && cmd != NETCOM_LOGIN_OK)
return ;
switch(cmd)
{
case NETCOM_LOGIN_OK:
pcon->blogin = true;
pcon->disconnecttime = 0;
pcon->netid = id;
break;
case NETCOM_SHAKE_HANDS:
dealshakehands(pcon, datalen, (unsigned char *)pdata);//三次握手建立连接
break;
default:
break;
} */
CString str;
str = pdata;
// AfxGetApp()->GetMainWnd()->PostMessage(SHOW_DATA,(WPARAM)pdata,ip);
richedit.InsertText(str);
}
void net_cmd::initnet()
{
pnet = new net_udp;
if(pnet == NULL)
return ;
cmdsocket = pnet->create();
if(cmdsocket == SOCKET_ERROR)
{
delete pnet;
return ;
}
addsocket(cmdsocket, 0); //0为upd 1为tcp
}
void net_cmd::getwnd(HWND mwnd)
{
wnd = mwnd;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -