📄 cmdsockmsg.c
字号:
#include <stdio.h>#include <string.h>#include <sys/types.h>#include <errno.h>#include <signal.h>#include <sys/wait.h>#include <stdlib.h>#include "msg.h"#include "shmpool.h"#include "macpool.h"static char g_ManageIp[16];static char g_ManageWashIp[16];static unsigned short termIndex=0;terminalInfo termInfo[100];int addterm(int roomID,char *ipaddr);void msgsendall(int selfRoomID);int addterm(int roomID,char *ipaddr){ int i; if(termIndex==0) { termInfo[0].roomID=roomID; memcpy(termInfo[0].ipaddr,ipaddr,16); termIndex++;#if DEBUG printf("termIndex==%d,tI.roomID=%d\n",termIndex,termInfo[0].roomID);#endif return termIndex-1; } if(termIndex==100) return -1; for(i=0;i<termIndex;i++) { if(roomID==termInfo[i].roomID) break; } if(i==termIndex) { termInfo[termIndex].roomID=roomID; memcpy(termInfo[termIndex].ipaddr,ipaddr,16); termIndex++;#if DEBUG printf("termIndex===%d,tI.roomID=%d\n",termIndex,termInfo[termIndex].roomID);#endif return termIndex-1; }}void msgsendall(int selfRoomID){ int i; msgDef msg;#if DEBUG printf("termIndex=%d",termIndex);#endif for(i=0;i<termIndex;i++) {#if DEBUG printf("ti.roomID=%d,selfRoomID=%d\n",termInfo[termIndex].roomID,selfRoomID);#endif if(termInfo[i].roomID!=selfRoomID) { msg.msgType=msgGirlSelect; msg.roomID=selfRoomID;#if DEBUG printf("msg.msgType=%d,sendip:%s\n",msg.msgType,termInfo[i].ipaddr);#endif msgSend(msg,termInfo[i].ipaddr,8018); } else continue; } }int cmdsockmsghandle(int sock){ msgDef msg; msgRecv(&msg); switch(msg.msgType) { case msgTerminalReg:#if DEBUG printf("msg.roomID=%d........\n",msg.roomID);#endif addterm(msg.roomID,msg.msgBuf); break; case msgGirlSelect: case msgGirlCancel:#if DEBUG printf("recieve cmd %d,roomID=%d\n\n",msg.msgType,msg.roomID);#endif if(msg.roomID!=0) msgSend(msg,g_ManageWashIp,8018); msgsendall(msg.roomID); break; case msgInfo: case msgInfoPic: case msgFire: case msgGirl: case msgWine: msgSend(msg,msg.ipaddr,8018); break; case msgInfoBoast: //may be change.. msgSend(msg,msg.ipaddr,8018); break; case msgManageWashReg: memcpy(g_ManageWashIp,msg.ipaddr,16); { msgDef msgT; msgT.msgType=33; sprintf(msgT.msgBuf,"消息通信测试,状态正常!"); msgSend(msgT,g_ManageWashIp,8018); } break; case msgManageReg: memcpy(g_ManageIp,msg.ipaddr,16); { msgDef msgT; msgT.msgType=33; sprintf(msgT.msgBuf,"您已经注册成功,消息通信正常!"); msgSend(msgT,g_ManageIp,8018); } break; case msgManageUnreg: memset(g_ManageIp,0,16); break; case msgCallTo: case msgGirlTo: case msgBillTo: case msgWineTo: if(g_ManageIp[0]!=0) msgSend(msg,g_ManageIp,8018); if(g_ManageWashIp[0]!=0) msgSend(msg,g_ManageWashIp,8018); break; case msgTermEvent: case msgRoomOpen: case msgRoomChange: case msgRoomOrder: case msgRoomOrderCancel: case msgRoomBill: case msgRoomLock: case msgRoomUnlock: msgSend(msg,msg.ipaddr,8018); //get manage ipaddr from ippool. //msgSend(ipaddr,msg.ipaddr,*); break; case msgLive: { macPoolDef mp; short macid=msg.roomID; short np=poolQueryNodeByMacID(macid); if(np>=0) { poolQueryNode(&mp,np); mp.pingc=3; mp.connect=1; poolWriteNode(&mp,np); } break; } } return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -