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

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

?? tcpserver_ce.cpp

?? WINCE.net 下的TCP網(wǎng)絡(luò)編程服務(wù)器端程序的源代碼
?? CPP
字號:
// TCPServer_CE.cpp: implementation of the CTCPServer_CE class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "TCPServer.h"
#include "TCPServer_CE.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#include "TCPCustom_CE.h" 
#include <afxtempl.h>
//存儲客戶端Socket句柄
CList<CTCPCustom_CE,CTCPCustom_CE&> m_ListClientSocket;

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//構(gòu)造函數(shù)
CTCPServer_CE::CTCPServer_CE()
{
	//創(chuàng)建線程退出事件句柄
	m_exitThreadEvent = CreateEvent(NULL,FALSE,FALSE,NULL);
}
//析構(gòu)函數(shù)
CTCPServer_CE::~CTCPServer_CE()
{
	//關(guān)閉線程退出事件句柄
	CloseHandle(m_exitThreadEvent);
}

/*--------------------------------------------------------------------
【函數(shù)介紹】:  此線程用于檢測監(jiān)聽套接字事件。
【入口參數(shù)】:  lparam:無類型指針,可以通過此參數(shù),向線程中傳入需要用到的資源。
			   在這里我們將CTCPServer_CE類實例指針傳進(jìn)來
【出口參數(shù)】:  (無)
【返回  值】:  返回值沒有特別的意義,在此我們將返回值設(shè)為0。
---------------------------------------------------------------------*/
DWORD CTCPServer_CE::SocketThreadFunc(PVOID lparam)
{
	CTCPServer_CE *pSocket;
	//得到CTCPServer_CE實例指針
	pSocket = (CTCPServer_CE*)lparam;
	//定義讀事件集合
	fd_set fdRead;
	int ret;
	TIMEVAL	aTime;
	aTime.tv_sec = 1;
	aTime.tv_usec = 1;
	while (TRUE)
	{
        //收到退出事件,結(jié)束線程
		if (WaitForSingleObject(pSocket->m_exitThreadEvent,0) == WAIT_OBJECT_0)
		{
			break;
		}
		
		FD_ZERO(&fdRead);
		FD_SET(pSocket->m_ServerSocket,&fdRead);
		
		ret = select(0,&fdRead,NULL,NULL,&aTime);
		
		if (ret == SOCKET_ERROR)
		{
			//觸發(fā)錯誤事件
			int iErrorCode = WSAGetLastError();
			//觸發(fā)服務(wù)器socket的錯誤事件
			pSocket->OnServerError(pSocket->m_pOwnerWnd,pSocket,iErrorCode);
			//關(guān)閉服務(wù)器套接字 
			closesocket(pSocket->m_ServerSocket);
			break;
		}
		
		if (ret > 0)
		{
			//判斷是否讀事件
			if (FD_ISSET(pSocket->m_ServerSocket,&fdRead))
			{
				//如果調(diào)用了Listen,則表示觸發(fā)了OnAccept事件
				
				SOCKADDR_IN clientAddr;
				CTCPCustom_CE * pClientSocket = new CTCPCustom_CE();
				int namelen = sizeof(clientAddr);
				//等待,創(chuàng)建與客戶端連接的套接字
				pClientSocket->m_socket = accept(pSocket->m_ServerSocket, (struct sockaddr *)&clientAddr, &namelen);
				//接收到客戶端連接
				if (pClientSocket->m_socket)
				{
					pClientSocket->m_RemoteHost = inet_ntoa(clientAddr.sin_addr);
					pClientSocket->m_RemotePort = ntohs(clientAddr.sin_port);
					
					//觸發(fā)與客戶端建立連接事件
					pSocket->OnClientConnect(pSocket->m_pOwnerWnd,pClientSocket);
					//打開pClientSocket服務(wù)線程
					pClientSocket->Open(pSocket);
					//添加到客戶端連接隊列中
					m_ListClientSocket.AddTail(*pClientSocket);
				}
				else
				{
					delete pClientSocket;
				}	
			}
		}
	}
	return 0;
}



/*--------------------------------------------------------------------
【函數(shù)介紹】:  打開TCP服務(wù)
【入口參數(shù)】:  (無)
【出口參數(shù)】:  (無)
【返回  值】:  <=0:打開TCP服務(wù)失敗; =1:打開TCP服務(wù)成功
---------------------------------------------------------------------*/
int CTCPServer_CE::Open()
{
	WSADATA wsa;
	
	//1.初始化socket資源
	if (WSAStartup(MAKEWORD(1,1),&wsa) != 0)
	{
		return -1;//代表失敗
	}
	
	//2.創(chuàng)建監(jiān)聽套接字
	if ((m_ServerSocket=socket(AF_INET, SOCK_STREAM, 0))<0)
	{
		return -2;
	}
	
    SOCKADDR_IN  serverAddr;
	ZeroMemory((char *)&serverAddr,sizeof(serverAddr));
	serverAddr.sin_family = AF_INET;
	serverAddr.sin_port = htons(m_LocalPort);
	serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
	//3.綁定監(jiān)聽套接字
	if (bind(m_ServerSocket, (struct sockaddr *)&serverAddr, sizeof(serverAddr))<0)
	{
		
		return -3 ;
	}
	//4.監(jiān)聽套接字開始監(jiān)聽
	if (listen(m_ServerSocket,8)!=0)
	{
		return -3;
	}
	
	//4.設(shè)置監(jiān)聽套接字通訊模式為異步模式
	DWORD ul= 1;
	ioctlsocket(m_ServerSocket,FIONBIO,&ul);

	ResetEvent(m_exitThreadEvent);
	//5.創(chuàng)建通訊線程,在線程里,等待客戶端接入
	m_serverThreadHandle = CreateThread(NULL,0,SocketThreadFunc,this,0,NULL);
	if (m_serverThreadHandle == NULL)
	{
		closesocket(m_ServerSocket);
		return -1;
	}

	return 1;
}


/*--------------------------------------------------------------------
【函數(shù)介紹】:  關(guān)閉TCP服務(wù)
【入口參數(shù)】:  (無)
【出口參數(shù)】:  (無)
【返回  值】:  <=0:關(guān)閉TCP服務(wù)失敗; =1:關(guān)閉TCP服務(wù)成功
---------------------------------------------------------------------*/
int CTCPServer_CE::Close()
{
	//結(jié)束通訊線程
	SetEvent(m_exitThreadEvent);
	Sleep(1000);
	//關(guān)閉Socket,釋放資源
	int err = closesocket(m_ServerSocket);
	if (err == SOCKET_ERROR)
	{
		return -1;
	}
	m_ServerSocket = NULL;

	//首先,關(guān)閉與所有客戶端連接
	POSITION pos = m_ListClientSocket.GetHeadPosition();
	while (pos != NULL)
	{
        CTCPCustom_CE &tmpTcpCustom = m_ListClientSocket.GetAt(pos);
		if (!tmpTcpCustom.Close())
		{
			AfxMessageBox(L"關(guān)閉客戶端socket錯誤");
		}
		m_ListClientSocket.RemoveHead();
		pos = m_ListClientSocket.GetHeadPosition();
	}
	
	WSACleanup();
	return 1;
}  

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美本精品男人aⅴ天堂| 精品日韩在线观看| 91免费观看国产| 日韩 欧美一区二区三区| 一区二区在线观看免费视频播放| 亚洲精品一区二区三区影院 | 成人精品小蝌蚪| 精品在线视频一区| 久久久美女毛片| 国产精品久久久久影院| 欧美日韩国产欧美日美国产精品| 成人综合婷婷国产精品久久 | 91影视在线播放| 精品国产91洋老外米糕| 亚洲国产日韩精品| 亚洲电影在线播放| 91免费在线看| 亚洲欧美综合色| 午夜电影一区二区三区| 免费成人在线影院| 国产大片一区二区| a4yy欧美一区二区三区| 欧美性色黄大片| 777亚洲妇女| 精品久久久久久最新网址| 美女网站色91| 国产精品1区2区3区| 亚洲最大的成人av| 日本三级亚洲精品| 91精品国产高清一区二区三区| 日韩一区二区视频| 国产精品久久久久久久久免费相片 | 精品国产乱码久久久久久图片| 亚洲成人激情av| 国产成人精品aa毛片| 久久老女人爱爱| 国内外成人在线视频| 在线观看成人免费视频| 欧美sm极限捆绑bd| 久久不见久久见免费视频1| 91亚洲精品一区二区乱码| 国产精品福利在线播放| 北条麻妃一区二区三区| 亚洲女同一区二区| 久久成人免费电影| 久久美女高清视频| 成人听书哪个软件好| 一区在线观看免费| 日本韩国一区二区三区视频| 精品欧美黑人一区二区三区| 国产精品18久久久久久久网站| 国产精品女同互慰在线看| 男男成人高潮片免费网站| 日韩欧美一二三四区| 午夜精品在线视频一区| 日韩欧美你懂的| 成人精品在线视频观看| 亚洲欧美日韩国产综合在线| 欧美日韩视频在线第一区 | 成人h动漫精品| 精品少妇一区二区三区免费观看| 国产在线精品免费| 欧美大尺度电影在线| 成人午夜短视频| 亚洲一区二区三区视频在线播放| 成人a级免费电影| 一区二区三区在线视频播放| 欧美成人一区二区| 成人av集中营| 免费观看成人av| 国产精品久久久久久久久久免费看| 色噜噜夜夜夜综合网| 久久99国内精品| 亚洲欧美国产高清| 日韩欧美视频一区| 在线观看91视频| 国产成人在线看| 欧美a级一区二区| 日韩理论片中文av| 一本一本大道香蕉久在线精品 | 91麻豆国产福利精品| 免费成人在线视频观看| 亚洲精品日产精品乱码不卡| 日韩欧美中文字幕精品| 在线免费观看一区| 高清不卡在线观看av| 国产精品久久久久久妇女6080 | 亚洲欧美另类小说| 欧美一级日韩免费不卡| 91视频一区二区三区| 经典三级视频一区| 日韩国产在线观看| 亚洲美腿欧美偷拍| 欧美国产成人精品| 成人avav影音| 国产真实乱对白精彩久久| 婷婷六月综合网| 亚洲精品国久久99热| 国产精品乱码久久久久久| 欧美精品一区二区三区视频| 欧美一区二区在线观看| 欧美精三区欧美精三区| 伦理电影国产精品| 亚洲成av人片一区二区三区| 樱花草国产18久久久久| 国产精品欧美久久久久一区二区| 久久亚洲影视婷婷| 欧美在线你懂的| 色综合天天狠狠| 91黄色激情网站| 色琪琪一区二区三区亚洲区| 色婷婷综合五月| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲一区二区三区小说| 最新久久zyz资源站| 3d成人h动漫网站入口| 亚洲精选视频在线| 337p亚洲精品色噜噜狠狠| 欧美日韩在线精品一区二区三区激情 | 中文字幕不卡的av| 国产精品久久精品日日| 国产日韩三级在线| 91精品1区2区| 欧美性猛交xxxxxx富婆| 欧美撒尿777hd撒尿| 91精品欧美久久久久久动漫| 欧美一区在线视频| 精品少妇一区二区三区在线视频| 久久这里只有精品6| 国产欧美日韩三级| 国产精品久久久久久久久免费相片 | 精品国产91洋老外米糕| 久久九九影视网| 在线成人av影院| 91麻豆精品国产无毒不卡在线观看| 在线不卡一区二区| 精品乱人伦小说| 亚洲欧洲av在线| 一区二区三区四区不卡在线| 日韩影院免费视频| 玉足女爽爽91| 日韩av在线播放中文字幕| 精品亚洲成a人| av电影在线观看一区| 欧美日韩黄色影视| 久久综合九色欧美综合狠狠| 一区免费观看视频| 亚洲成人精品一区二区| 国产精品影视在线| 91久久免费观看| 欧美大片顶级少妇| 亚洲色图欧美激情| 美女视频网站黄色亚洲| 不卡的av中国片| 日韩亚洲欧美在线| 亚洲免费观看高清完整版在线 | 国内欧美视频一区二区 | 日本高清无吗v一区| 国内精品久久久久影院一蜜桃| 成人黄色软件下载| 欧美区一区二区三区| 久久精品这里都是精品| 亚洲午夜免费电影| 国产不卡一区视频| 欧美一区二区视频在线观看 | 精品久久人人做人人爰| 亚洲日本护士毛茸茸| 免费精品视频在线| 91黄色免费看| 中文字幕在线视频一区| 美女任你摸久久| 欧美另类z0zxhd电影| 亚洲图片欧美激情| 国产精品一二三四五| 日韩欧美国产系列| 亚洲.国产.中文慕字在线| 不卡一区二区在线| 26uuu亚洲综合色欧美 | 97久久超碰国产精品| 国产精品1区2区| 欧美成人伊人久久综合网| 亚洲成av人片在线观看| 在线欧美一区二区| 综合久久一区二区三区| 国产一区二三区| 日韩视频一区在线观看| 人人精品人人爱| 欧美久久久影院| 亚洲国产一区二区在线播放| 91免费视频观看| 日韩毛片视频在线看| 99麻豆久久久国产精品免费| 国产日韩精品久久久| 精品在线亚洲视频| 精品成人免费观看| 国产一区二区看久久| 欧美精品一区二区久久婷婷| 久久国产精品免费| 26uuu国产在线精品一区二区| 久久91精品久久久久久秒播|