问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

魔域服务端源码

发布网友 发布时间:2022-05-24 18:30

我来回答

2个回答

热心网友 时间:2023-10-25 06:21

发一段给你吧。这一段是关于Socket的,呵呵,多学学。
bool CSocketKernel::Create(IMessagePort* pPort)
{
m_idNpcSocket = SOCKET_NONE;
m_pMsgPort = pPort;
m_pMsgPort->Open();
// TODO: 请在此添加初始化代码
m_pListen = m_cListen.GetInterface();

if(!ServerSocketInit())
return false;
if(!m_pListen->Listen(SERVER_LISTEN_PORT, SOCKET_SENDBUFSIZE))
return false;

return true;// return false : 创建失败,程序关闭。
}

bool CSocketKernel::ProcessMsg(OBJID idPacket, void* buf, int nType, int nFrom)
{
// TODO: 请在此添加消息处理代码
switch(idPacket)
{
caseSOCKET_CLOSESOCKET:
{
SOCKET_IDidSocket= *(int*)buf;
if(idSocket >= m_setSocket.size())
break;
LOGDEBUG("DEBUG:通讯核心收到关闭网络消息,SOCKET_ID[%u]", idSocket);

if(m_setSocket[idSocket])// readme.txt (1-7)
{
m_setSocket[idSocket]->Close(true);
m_setSocket[idSocket]= NULL;
CServerSocket::Destroy(m_setServerSocket[idSocket]);
m_setProcessID[idSocket]= PROCESS_NONE;
m_setNetBreakFlag[idSocket]= false;
if(m_idNpcSocket == idSocket)
{
LOGDUMP("m_idNpcSocket(%d) = SOCKET_NONE", m_idNpcSocket);
m_idNpcSocket = SOCKET_NONE;

char*pText = "NPC server broken connect.";
m_pMsgPort->Send(MSGPORT_SHELL, SHELL_PRINTTEXT, STRING_TYPE(pText), pText);
}
}
}
break;
caseSOCKET_SETPROCESSID:
{
const CHANGE_USERDATA*pPack = (CHANGE_USERDATA*)buf;
if(pPack->idSocket >= 0 && pPack->idSocket < m_setSocket.size()
&& m_setSocket[pPack->idSocket]
&& !IsNetBreakFlag(pPack->idSocket) )// 网络正常
m_setProcessID[pPack->idSocket] = pPack->nData;
else
m_pMsgPort->Send(nFrom, KERNEL_CLOSEKERNEL, VARTYPE_INT, &pPack->idSocket);// readme.txt (1-6)
}
break;
caseSOCKET_SENDCLIENTMSG:
{
const SENDCLIENTMSG_PACKET0* pPack = (SENDCLIENTMSG_PACKET0*)buf;
if(pPack->idSocket >= m_setSocket.size())
break;

if(m_setSocket[pPack->idSocket])
{
char buf[MAX_PACKETSIZE];
intnNetPacketSize = UnitePacket(buf, MAX_PACKETSIZE, pPack->idPacket, pPack->buf, pPack->nSize);
ASSERT(nNetPacketSize);
if(nNetPacketSize)
{
#ifdefPALED_DEBUG
OBJIDidPacket = *((unsigned short*)buf + 1);

热心网友 时间:2023-10-25 06:21

太长了,只是把Socket的发一小段给你,Thread部分的无法发布,说重复字符太多了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
关于第一次经典语录 ...三个月后打开包装发现里面零件全部损坏,请问能去超市退换 微单相机哪个品牌好 一首歌在酷狗上查找猪猪非主流歌曲club 沙拉拉就有求歌名 一首英文DJ,歌词是"刷啦啦哩,刷啦啦啦哩"还有歌词听起来好像是:"I wa... sha la la la sha la la lei 是什么歌 男孩起名字大全免费2025年 姓李的男孩起名字大全 ...九月十二(阴历)下午16点 出生 姓李 希望大师给起个好点的名字... 电脑开机提示先激活windows电脑上出现要激活WINDOWS是什么意思_百度知 ... 中国建设银行从邮政储蓄银行提钱会产生多少费用 怎样用SetSocketOption函数设置MulticastInterface属性 鼻子一直痒老打喷嚏怎么办 熊猫tv小乌龟现在新浪微博叫什么? 昭昭代驾司机端怎么下载 聚能跑司机端怎样下载 无证驾驶强险怎么赔偿 无照驾驶交强险赔偿范围是什么 交强险无证驾驶如何赔偿? 无证驾驶交强险 交强险没有驾驶证能赔吗 无证驾驶应该怎么处罚,无证驾驶交强险赔吗 无证交强险赔偿多少钱 xp32位系统 能安装什么系统 求歌词:我时间滴答滴答滴答滴答不停的转动,我心在扑通扑通扑通... 尽情摇摆身体把悲伤抛弃是什么歌 手机和电脑使用同一个,聊天记录能够同步吗? OPPO手机可以更换主题么?要怎么更换? “共享、分享”的古汉语说法有什么呢? 分享分享感情的本质是什么呢? 分享的价值是什么呢? Socket高手看下 java中如何创建网络流,比如下面这个,但是这个存在问题,第一句就调试不过去 c# socket类的问题 重庆工程类中级职称申报条件是什么? 重庆工程类中级职称计算机考试考那几个模块 不给对方打微信电话如果知道他的微信铃声 微信铃声怎么只用蓝牙耳机提醒,不要手机喇叭发声提醒? 给对方打电话对方没有我的铃音而是由于微信语音咋回事? 手机接听电话时,如何关闭微信提示音?每次我接电话时,哪个微信提示音都要把耳朵给我震聋了!我的是三星 王岳伦与美女壁咚被拍,曾卖房帮他拍电影的李湘,看错人了吗? 影视作品中男演员在拍摄公主病抱镜头时都很轻松,这是真的吗? 张嘉译在影视剧中撩过哪些女人? 影视多了难免出来老套的梗 ,影视剧中有哪些老得要死的套路呢? 七个劲爆陀螺名称及特征 爆转陀螺2002青龙之章 汉化版[GBA]如何操作 爆转陀螺g点旋转必杀技 有关劲爆陀螺的资料 劲爆陀螺资料 爆旋陀螺第一部、第二部、第三部的迅雷下载地址谁知道?(国语版的) TVB【爆旋陀螺】片尾曲日语翻译成中文