亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? serv.cpp

?? 中國電信CMPP2.0原代碼+程序
?? CPP
字號:
/**
*	文件:	serv.cpp
*	作者:	PrinceToad,princetoad@tom.com,http://gmm.nease.net
*	說明:	中國移動CMPP2.0短消息網(wǎng)關(guān)開發(fā)接口庫 示例工程模擬網(wǎng)關(guān)文件
*	版本:	1.3
*/
#include	"serv.h"

SOCKET		serverSocket;
int			g_srvport = 7890;
CLogFile	*log = NULL;
bool		g_fstop = true;
CLIENT_CONN	conn_list[255];
int			nConnectTotal = 0;
cmpp_conn	conn;

int		MB(const char* fmt, UINT nType, ...)
{
	char buffer[MAX_LINE];

	va_list arglist;						
	va_start( arglist, fmt );								/* Initialize variable arguments. */
	_vsnprintf( buffer, sizeof(buffer), fmt, arglist );		/*The wvsprintf function formats and stores a series of characters and values in a buffer*/
	va_end(arglist);										/* Reset variable arguments.      */

	return AfxMessageBox(buffer, nType);
}


int		MB(const char* fmt, ...)
{
	char buffer[MAX_LINE];

	va_list arglist;						
	va_start( arglist, fmt );								/* Initialize variable arguments. */
	_vsnprintf( buffer, sizeof(buffer), fmt, arglist );		/*The wvsprintf function formats and stores a series of characters and values in a buffer*/
	va_end(arglist);										/* Reset variable arguments.      */

	return AfxMessageBox(buffer);
}

bool serv_listen()
{
	SOCKADDR_IN		serverSockAddr;
	int				status = 0;

	try
	{
		memset(&serverSockAddr, 0, sizeof(serverSockAddr));
		serverSockAddr.sin_port = htons(g_srvport);
		serverSockAddr.sin_family = AF_INET;
		serverSockAddr.sin_addr.s_addr = htonl(INADDR_ANY);
		
		serverSocket = socket(AF_INET, SOCK_STREAM, 0);
		if (serverSocket == INVALID_SOCKET)
		{
			log->Write("create gw socketServer fail!\n");
			goto finished;
		}

		status = bind(serverSocket, \
			(LPSOCKADDR)&serverSockAddr, \
			sizeof(serverSockAddr));
		if (status == SOCKET_ERROR)
		{
			log->Write("bind gw socketServer fail!\n");
			goto finished;
		}

		status = listen(serverSocket, SOMAXCONN);
		if (status == SOCKET_ERROR)
		{
			log->Write("listen gw socketServer fail!\n");
			goto finished;
		}
		log->Write("模擬網(wǎng)關(guān)開始監(jiān)聽連接...\n");
	}
	catch(...)
	{
		log->Write("listenServer exception!\n");
		goto finished;
	}
	return true;
finished:
	closesocket(serverSocket);
	return false;
}

bool serv_clean()
{
	if (SOCKET_ERROR == closesocket(serverSocket))
	{
		log->Write("Failed to close serv socket!\n");
		return false;
	}

	return true;
}

bool serv_accept()
{
	DWORD			threadID;

	CreateThread(0,
		0,
		(LPTHREAD_START_ROUTINE)serv_accept_proc,
		NULL,
		0,
		&threadID);	
	return true;
}

UINT	serv_accept_proc(void *param)
{
	int				nRetCode = 0;
	int				stat = 0;
	SOCKADDR_IN		clientSockAddr;
	SOCKET			clientSocket;
	int				addrLen = sizeof(SOCKADDR_IN);
//	DWORD			threadID;
	char			sIcpId[7];
	DWORD			threadID;

	ZeroMemory(sIcpId, 7);
	try
	{
		while(!g_fstop)
		{
			clientSocket = accept(serverSocket, \
				(LPSOCKADDR)&clientSockAddr, \
				&addrLen);
			if (clientSocket == INVALID_SOCKET)
			{
				log->Write("模擬網(wǎng)關(guān)接收連接失敗!\n");
				continue;
			}
			else
			{
				log->Write("收到一個連接,開始接收登錄請求...\n");
				if (CMPP_SUCCESS ==	cmpp_waitfor_login(clientSocket, sIcpId))
				{
					log->Write("\t登錄成功,客戶端ICPID = %s!\n", sIcpId);
					AddToList(clientSocket, sIcpId);
					CreateThread(0,
						0,
						(LPTHREAD_START_ROUTINE)talkToclient,
						(void*)clientSocket,
						0,
						&threadID);	
				}
				else
				{
					log->Write("\t登錄失敗!\n");
				}
			}
		}
	}
	catch(...)
	{
		log->Write("serv_accept_proc fail!\n");
		goto finished;
	}
finished:
		return nRetCode;
}

UINT talkToclient(void *param)
{
	int				nRetCode = 0;
	cmpp_status_t	status = CMPP_SUCCESS;
	cmppg_icp_packet cip;

	SOCKET			*clientSocket = (SOCKET*)&param;
	while(!g_fstop && (CMPP_SUCCESS == status))
	{
		status = cmpp_recv_icp(*clientSocket, &cip, CMPP_RECV_TIMEOUT);
		if (status == CMPP_SOCKET_RECVTIMEOUT)
		{
			status = CMPP_SUCCESS;
			continue;
		}
		if (status != CMPP_SUCCESS)
			log->Write("接收SP請求包失敗!\n");
		else
		{
			log->Write("收到一條請求!\n");
			log_pkg_content(cip);
		}
	}
	RemoveFromList(*clientSocket);
//	closesocket(*clientSocket);
	return nRetCode;
}

void log_pkg_content(cmppg_icp_packet cip)
{
//	int		nLen;
	int		nCmd;
//	int		nSeq;

	try
	{
		nCmd = cip.pk_head.nCommandId;
		if (nCmd == CMPP_SUBMIT)
		{
			log->Write("收到submit消息--<%s>\t目的號碼--<%s>\t消息長度--<%d>\t消息內(nèi)容--<%s>\n", \
				cip.pk_data.pk_submit.sMsgSrc, \
				cip.pk_data.pk_submit.sDestTerminalId, \
				int(cip.pk_data.pk_submit.cMsgLen), \
				cip.pk_data.pk_submit.sMsgContent);
		}
		if (nCmd == CMPP_ACTIVE_TEST)
			log->Write("收到活動測試包!\n");
	}
	catch(...)
	{
		log->Write("<log_pkg_content>exception!\n");
	}
	return;
}

void	AddToList(SOCKET hClient, CString sIcpid)
{
	CLIENT_CONN		cNode;

	cNode.hClient = hClient;
	cNode.sIcpid = sIcpid;
	
	conn_list[nConnectTotal] = cNode;
	nConnectTotal++;

	return;
}

void	RemoveFromList(SOCKET hClient)
{
	int i = 0, j = 0;
	closesocket(hClient);

	for(i=0; i<nConnectTotal; i++)
	{
		if (conn_list[i].hClient == hClient)
		{
			break;
		}
	}

	for (j=i; j<nConnectTotal; j++)
	{
		conn_list[j] = conn_list[j + 1];
	}
	nConnectTotal--;
}

SOCKET	GetFromList(CString sIcpid)
{
	for (int i=0; i<nConnectTotal; i++)
	{
		if (conn_list[i].sIcpid == sIcpid)
			return conn_list[i].hClient;
	}

	return NULL;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久色.com| 2024国产精品| 精品国产一区二区三区四区四| 中文字幕在线不卡视频| 男男视频亚洲欧美| 在线观看日韩高清av| 久久精品一区四区| 日本欧美在线看| 色菇凉天天综合网| 久久精品亚洲国产奇米99| 亚洲v精品v日韩v欧美v专区| 91美女精品福利| 日本一区免费视频| 国产一区二三区| 欧美一级在线免费| 日韩国产高清在线| 欧美中文字幕亚洲一区二区va在线| 久久综合狠狠综合久久综合88| 日韩精品视频网| 欧美日韩成人在线一区| 亚洲网友自拍偷拍| 欧美午夜精品理论片a级按摩| 国产精品视频在线看| 国产福利91精品一区二区三区| 精品国产91乱码一区二区三区 | 91久久免费观看| 国产免费久久精品| 大尺度一区二区| 欧美激情一区二区在线| 国产高清精品网站| 久久久电影一区二区三区| 久久人人爽爽爽人久久久| 免费欧美日韩国产三级电影| 欧美精品一二三| 日本人妖一区二区| 精品处破学生在线二十三| 国产在线视频不卡二| 精品乱码亚洲一区二区不卡| 精品一区二区在线播放| 精品国产不卡一区二区三区| 国产iv一区二区三区| 国产精品免费久久| 91捆绑美女网站| 亚洲成av人**亚洲成av**| 91麻豆精品国产无毒不卡在线观看 | 一区二区在线观看av| 欧美视频在线观看一区| 日韩精品一区第一页| 精品国产第一区二区三区观看体验| 国产成人av资源| 亚洲综合视频网| 日韩免费福利电影在线观看| 国产精品综合久久| 亚洲色图丝袜美腿| 91麻豆精品国产自产在线观看一区 | 日韩欧美一级特黄在线播放| 国产精品一区二区三区网站| 亚洲色图一区二区三区| 91麻豆精品国产91久久久久久| 精品一区二区三区不卡 | 蜜桃一区二区三区四区| 国产亚洲成年网址在线观看| 91成人国产精品| 狠狠狠色丁香婷婷综合激情| 亚洲柠檬福利资源导航| 91精品国产一区二区三区香蕉| 国产成人av自拍| 亚洲午夜精品久久久久久久久| 久久蜜臀精品av| 欧美视频中文字幕| 国产高清在线精品| 亚洲成人精品在线观看| 欧美激情一区二区在线| 欧美精品久久99久久在免费线| 国产成人h网站| 丝袜美腿亚洲一区二区图片| 国产精品毛片久久久久久久 | 欧美四级电影在线观看| 国产成人综合精品三级| 日韩电影网1区2区| 亚洲欧美乱综合| 久久久久久一级片| 欧美一区在线视频| 91高清视频在线| 高清国产午夜精品久久久久久| 日韩国产精品91| 亚洲一区在线视频观看| 国产精品三级电影| 久久久久一区二区三区四区| 日韩一区二区麻豆国产| 欧美吻胸吃奶大尺度电影 | 国产91富婆露脸刺激对白| 久久精品国产秦先生| 午夜视频一区二区三区| 亚洲精品中文字幕乱码三区| 国产人伦精品一区二区| 日韩欧美视频一区| 91精品国产综合久久久久久久| 欧美主播一区二区三区| 成人激情图片网| 岛国一区二区三区| 国产成人日日夜夜| 国产精品69久久久久水密桃| 美女mm1313爽爽久久久蜜臀| 天天操天天色综合| 成人一道本在线| 国产一区二区三区| 国产一区在线观看麻豆| 精品一区中文字幕| 精东粉嫩av免费一区二区三区| 午夜不卡av免费| 日韩高清电影一区| 美国欧美日韩国产在线播放| 麻豆freexxxx性91精品| 六月丁香综合在线视频| 久久国产综合精品| 极品少妇xxxx精品少妇偷拍 | 日本一区二区三区视频视频| 国产午夜精品在线观看| 国产精品人人做人人爽人人添| 国产校园另类小说区| 欧美激情综合在线| 日韩理论片中文av| 亚洲成av人片在线观看无码| 日韩主播视频在线| 激情图区综合网| www.亚洲色图.com| 欧美日韩专区在线| 欧美大片在线观看| 国产欧美一区二区精品婷婷| ●精品国产综合乱码久久久久| 亚洲一区二区欧美日韩| 日本不卡一区二区三区高清视频| 美女精品一区二区| 国产福利一区二区三区视频在线| av激情亚洲男人天堂| 色综合久久久久久久久| 51午夜精品国产| 欧美高清在线一区二区| 亚洲一级片在线观看| 国精品**一区二区三区在线蜜桃| av电影在线观看一区| 欧美高清视频www夜色资源网| 日韩精品一区在线| 成人欧美一区二区三区在线播放| 丝瓜av网站精品一区二区| 国产精品综合二区| 欧洲亚洲国产日韩| www激情久久| 亚洲综合免费观看高清完整版在线| 蜜桃一区二区三区在线| 99久久er热在这里只有精品66| 91精品国产一区二区| 国产精品久久久久久久久免费丝袜 | 国产一区二区中文字幕| 色婷婷久久综合| 精品国产一区二区三区四区四| 国产精品美女久久久久aⅴ| 午夜精品福利视频网站| 成人a区在线观看| 91精品国产91热久久久做人人| 国产精品日日摸夜夜摸av| 日韩电影在线观看网站| 99久久99久久精品免费看蜜桃| 欧美电影免费观看高清完整版在 | 91精彩视频在线观看| 欧美一区二区三区啪啪| 中文字幕一区二区三区av| 奇米888四色在线精品| 94色蜜桃网一区二区三区| 精品国产麻豆免费人成网站| 亚洲va在线va天堂| 99久久综合精品| 2欧美一区二区三区在线观看视频| 一区二区免费看| 成人久久久精品乱码一区二区三区| 日韩视频在线观看一区二区| 亚洲成人午夜影院| 91首页免费视频| 国产精品进线69影院| 精东粉嫩av免费一区二区三区| 欧美喷潮久久久xxxxx| 亚洲免费看黄网站| 成人一区在线观看| 久久午夜电影网| 激情五月播播久久久精品| 日韩一区二区三区四区| 婷婷久久综合九色综合绿巨人| 成人免费视频免费观看| 国产日韩欧美一区二区三区综合| 国产一区美女在线| 久久午夜羞羞影院免费观看| 久久精品国产亚洲一区二区三区| 欧美三级在线看| 亚洲 欧美综合在线网络| 欧美日韩午夜影院| 亚洲高清免费观看 | 日本v片在线高清不卡在线观看| 欧美日韩国产另类不卡| 五月激情综合色|