91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

完成端口示例代碼:IOCPExample_By_PiggyXP.rar

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include?“IOCPModel.h“
#include?“MainDlg.h“

//?每一個處理器上產生多少個線程(為了最大限度的提升服務器性能,詳見配套文檔)
#define?WORKER_THREADS_PER_PROCESSOR?2
//?同時投遞的Accept請求的數量(這個要根據實際的情況靈活設置)
#define?MAX_POST_ACCEPT??????????????10
//?傳遞給Worker線程的退出信號
#define?EXIT_CODE????????????????????NULL


//?釋放指針和句柄資源的宏

//?釋放指針宏
#define?RELEASE(x)??????????????????????{if(x?!=?NULL?){delete?x;x=NULL;}}
//?釋放句柄宏
#define?RELEASE_HANDLE(x)???????????????{if(x?!=?NULL?&&?x!=INVALID_HANDLE_VALUE){?CloseHandle(x);x?=?NULL;}}
//?釋放Socket宏
#define?RELEASE_SOCKET(x)???????????????{if(x?!=INVALID_SOCKET)?{?closesocket(x);x=INVALID_SOCKET;}}



CIOCPModel::CIOCPModel(void):
m_nThreads(0)
m_hShutdownEvent(NULL)
m_hIOCompletionPort(NULL)
m_phWorkerThreads(NULL)
m_strIP(DEFAULT_IP)
m_nPort(DEFAULT_PORT)
m_pMain(NULL)
m_lpfnAcceptEx(?NULL?)
m_pListenContext(?NULL?)
{
}


CIOCPModel::~CIOCPModel(void)
{
//?確保資源徹底釋放
this->Stop();
}




///////////////////////////////////////////////////////////////////
//?工作者線程:??為IOCP請求服務的工作者線程
//?????????也就是每當完成端口上出現了完成數據包,就將之取出來進行處理的線程
///////////////////////////////////////////////////////////////////

DWORD?WINAPI?CIOCPModel::_WorkerThread(LPVOID?lpParam)
{????
THREADPARAMS_WORKER*?pParam?=?(THREADPARAMS_WORKER*)lpParam;
CIOCPModel*?pIOCPModel?=?(CIOCPModel*)pParam->pIOCPModel;
int?nThreadNo?=?(int)pParam->nThreadNo;

pIOCPModel->_ShowMessage(“工作者線程啟動,ID:?%d.“nThreadNo);

OVERLAPPED???????????*pOverlapped?=?NULL;
PER_SOCKET_CONTEXT???*pSocketContext?=?NULL;
DWORD????????????????dwBytesTransfered?=?0;

//?循環處理請求,知道接收到Shutdown信息為止
while?(WAIT_object_0?!=?WaitForSingleobject(pIOCPModel->m_hShutdownEvent?0))
{
BOOL?bReturn?=?GetQueuedCompletionStatus(
pIOCPModel->m_hIOCompletionPort
&dwBytesTransfered
(PULONG_PTR)&pSocketContext
&pOverlapped
INFINITE);

//?如果收到的是退出標志,則直接退出
if?(?EXIT_CODE==(DWORD)pSocketContext?)
{
break;
}

//?判斷是否出現了錯誤
if(?!bReturn?)??
{??
DWORD?dwErr?=?GetLastError();

//?顯示一下提示信息
if(?!pIOCPModel->HandleError(?pSocketContextdwErr?)?)
{
break;
}

continue;??
}??
else??
{??
//?讀取傳入的參數
PER_IO_CONTEXT*?pIoContext?=?CONTAINING_RECORD(pOverlapped?PER_IO_CONTEXT?m_Overlapped);??

//?判斷是否有客戶端斷開了
if((0?==?dwBytesTransfered)?&&?(?RECV_POSTED==pIoContext->m_OpType?||?SEND_POSTED==pIoContext->m_OpType))??
{??
pIOCPModel->_ShowMessage(?_T(“客戶端?%s:%d?斷開連接.“)inet_ntoa(pSocketContext->m_ClientAddr.sin_addr)?ntohs(pSocketContext->m_ClientAddr.sin_port)?);

//?釋放掉對應的資源
pIOCPModel->_RemoveContext(?pSocketContext?);

? continue;??
}??
else
{
switch(?pIoContext->m_OpType?)??
{??
?//?Accept??
case?ACCEPT_POSTED:
{?

//?為了增加代碼可讀性,這里用專門的_DoAccept函數進行處理連入請求
pIOCPModel->_DoAccpet(?pSocketContext?pIoContext?);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

????I.A....?????21877??2011-08-30?12:40??PiggyIOCPServer_2008\PiggyIOCPServer\IOCPModel.cpp

?????文件???????8164??2011-08-30?12:40??PiggyIOCPServer_2008\PiggyIOCPServer\IOCPModel.h

?????文件???????4950??2011-08-30?12:40??PiggyIOCPServer_2008\PiggyIOCPServer\MainDlg.cpp

?????文件???????1446??2010-12-28?15:20??PiggyIOCPServer_2008\PiggyIOCPServer\MainDlg.h

?????文件??????59672??2009-10-07?00:29??PiggyIOCPServer_2008\PiggyIOCPServer\PiggyIOCPServer.aps

?????文件???????1709??2009-09-30?10:19??PiggyIOCPServer_2008\PiggyIOCPServer\PiggyIOCPServer.cpp

?????文件????????497??2009-10-06?15:53??PiggyIOCPServer_2008\PiggyIOCPServer\PiggyIOCPServer.h

?????文件???????5804??2009-10-07?00:29??PiggyIOCPServer_2008\PiggyIOCPServer\PiggyIOCPServer.rc

?????文件???????5878??2010-12-28?15:05??PiggyIOCPServer_2008\PiggyIOCPServer\PiggyIOCPServer.vcproj

?????文件???????1413??2009-10-09?17:10??PiggyIOCPServer_2008\PiggyIOCPServer\PiggyIOCPServer.vcproj.HAOTHINK.Hao?Wang.user

?????文件???????1419??2011-02-28?18:04??PiggyIOCPServer_2008\PiggyIOCPServer\PiggyIOCPServer.vcproj.HAOWANGBOOK.Thinkpad.user

?????文件???????1405??2010-09-01?02:03??PiggyIOCPServer_2008\PiggyIOCPServer\PiggyIOCPServer.vcproj.MYPC.Piggy.user

?????文件???????2723??2009-09-30?10:19??PiggyIOCPServer_2008\PiggyIOCPServer\ReadMe.txt

?????文件??????21630??2003-07-23?17:52??PiggyIOCPServer_2008\PiggyIOCPServer\res\PiggyIOCPServer.ico

?????文件????????405??2009-09-30?10:26??PiggyIOCPServer_2008\PiggyIOCPServer\res\PiggyIOCPServer.rc2

?????文件????????163??2009-10-06?23:46??PiggyIOCPServer_2008\PiggyIOCPServer\res\vssver2.scc

?????文件????????868??2009-09-30?10:41??PiggyIOCPServer_2008\PiggyIOCPServer\resource.h

?????文件????????146??2009-09-30?10:19??PiggyIOCPServer_2008\PiggyIOCPServer\stdafx.cpp

?????文件???????1772??2011-08-30?12:40??PiggyIOCPServer_2008\PiggyIOCPServer\stdafx.h

?????文件???????1030??2009-10-07?00:15??PiggyIOCPServer_2008\PiggyIOCPServer\targetver.h

?????文件????????594??2009-09-27?09:25??PiggyIOCPServer_2008\PiggyIOCPServer\XPstyle.manifest

?????文件?????138752??2011-08-30?12:40??PiggyStressTestClient.exe

?????目錄??????????0??2011-08-30?12:39??PiggyIOCPServer_2008\PiggyIOCPServer\res

?????目錄??????????0??2011-08-30?12:40??PiggyIOCPServer_2008\PiggyIOCPServer

?????目錄??????????0??2011-11-02?10:02??PiggyIOCPServer_2008

-----------?---------??----------?-----??----

???????????????282317????????????????????25


評論

共有 條評論