⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmdsockmsg.c

📁 公关系统服务器后台程序
💻 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 + -