資源簡介
使用IOCP完成端口和SOCKET封裝的異步TCP類。
支持客戶端和服務(wù)器的常用TCP接口:綁定Bind、監(jiān)聽Listen、接收Recv、連接Conn、發(fā)送Send、關(guān)閉Close。所有接口均使用異步回調(diào)的方式處理,內(nèi)部實現(xiàn)使用Windows下性能最高的IOCP完成端口網(wǎng)絡(luò)模型,并很好地處理了多線程安全和同步問題。
線程創(chuàng)建和事件信號量等地方用到了MFC的類,如果項目不支持MFC,可以把這些地方替換成WindowsAPI的方式。
代碼是從成熟項目中分離出來的,能達(dá)到很高的性能和網(wǎng)絡(luò)吞吐量,并且穩(wěn)定無BUG。
代碼片段和文件信息
#include?“StdAfx.h“
#include?“AutoLock.h“
CAutoLock::CAutoLock(CSyncobject?*?pLock
?AutoLock::PFNPutTip?pfnPutTip?void?*?pThis)
{
m_pLock?=?pLock;
m_pfnPutTip?=?pfnPutTip;
m_pThis?=?pThis;
if?(m_pLock?==?NULL)
{
_PutTip(““?AutoLock::CONSTRUCT_LOCK_NULL);
return;
}
try
{
if?(!m_pLock->Lock())
{
_PutTip(““?AutoLock::CONSTRUCT_LOCK_FAIL);
return;
}
}
catch?(...)
{
_PutTip(““?AutoLock::CONSTRUCT_LOCK_EXCEPTION);
return;
}
}
CAutoLock::~CAutoLock(void)
{
if?(m_pLock?==?NULL)
{
_PutTip(““?AutoLock::DESTRUCT_LOCK_NULL);
return;
}
if?(!m_pLock->Unlock())
{
_PutTip(““?AutoLock::DESTRUCT_UNLOCK_FAIL);
return;
}
}
/******************************************************************************
輸出提示
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1099??2016-01-25?17:42??AutoLock.cpp
?????文件????????998??2015-12-05?19:01??AutoLock.h
?????文件????????772??2016-01-25?17:36??AutoLockDef.h
?????文件???????8403??2017-01-18?21:35??ContextBuf.cpp
?????文件???????3605??2016-03-21?21:17??ContextBuf.h
?????文件???????4355??2016-03-21?18:48??ContextBufDef.h
?????文件???????4195??2017-01-18?21:35??SocketBuf.cpp
?????文件???????2428??2016-03-17?17:49??SocketBuf.h
?????文件????????951??2016-01-25?17:36??SocketBufDef.h
?????文件??????29861??2017-01-18?21:36??TCP.cpp
?????文件??????13056??2016-03-22?12:18??TCP.h
?????文件???????2803??2016-03-28?17:55??TCPDef.h
-----------?---------??----------?-----??----
????????????????72526????????????????????12
評論
共有 條評論