Skip to content

Commit

Permalink
commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ylmbtm committed Nov 8, 2021
1 parent 21d1d57 commit 7bc7426
Show file tree
Hide file tree
Showing 17 changed files with 125 additions and 130 deletions.
1 change: 0 additions & 1 deletion Server/Src/ProxyServer/ProxyMsgHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,6 @@ BOOL CProxyMsgHandler::OnMsgKickoutNty(NetPacket* pPacket)
if (pConn != NULL)
{
pConn->SetConnectionData(0);
//ServiceBase::GetInstancePtr()->CloseConnect(pPacketHeader->dwUserData);
}

return TRUE;
Expand Down
37 changes: 23 additions & 14 deletions Server/Src/ServerEngine_asio/Connection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ CConnection::CConnection(boost::asio::io_service& ioservice): m_hSocket(ioservic
{
m_pDataHandler = NULL;

m_nDataLen = 0;
m_nDataLen = 0;

m_bConnected = FALSE;

m_uConnData = 0;
m_uConnData = 0;

m_nConnID = 0;
m_nConnID = 0;

m_pCurRecvBuffer = NULL;

Expand All @@ -43,9 +43,9 @@ CConnection::~CConnection(void)

BOOL CConnection::DoReceive()
{
//boost::asio::async_read(m_hSocket, boost::asio::buffer(m_pRecvBuf + m_dwDataLen,CONST_BUFF_SIZE - m_dwDataLen), boost::bind(&CConnection::handReaddata, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
//boost::asio::async_read(m_hSocket, boost::asio::buffer(m_pRecvBuf + m_nDataLen,CONST_BUFF_SIZE - m_nDataLen), boost::bind(&CConnection::handReaddata, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));

//boost::asio::async_read_some(m_hSocket, boost::asio::buffer(m_pRecvBuf + m_dwDataLen,CONST_BUFF_SIZE - m_dwDataLen), boost::bind(&CConnection::handReaddata, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
//boost::asio::async_read_some(m_hSocket, boost::asio::buffer(m_pRecvBuf + m_nDataLen,CONST_BUFF_SIZE - m_nDataLen), boost::bind(&CConnection::handReaddata, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));

m_hSocket.async_read_some(boost::asio::buffer(m_pRecvBuf + m_nDataLen, RECV_BUF_SIZE - m_nDataLen), boost::bind(&CConnection::HandReaddata, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));

Expand Down Expand Up @@ -73,11 +73,11 @@ void CConnection::SetConnectionID( INT32 nConnID )
return ;
}

VOID CConnection::SetConnectionData( UINT64 dwData )
VOID CConnection::SetConnectionData( UINT64 uData )
{
ERROR_RETURN_NONE(m_nConnID != 0);

m_uConnData = dwData;
m_uConnData = uData;

return ;
}
Expand Down Expand Up @@ -406,7 +406,7 @@ void CConnection::HandReaddata(const boost::system::error_code& error, size_t le
{
if (!error)
{
if (HandleRecvEvent((UINT32)len))
if (HandleRecvEvent((INT32)len))
{
return;
}
Expand Down Expand Up @@ -479,9 +479,9 @@ CConnection* CConnectionMgr::GetConnectionByID( INT32 nConnID )
{
ERROR_RETURN_NULL(nConnID != 0);

UINT32 dwIndex = nConnID % m_vtConnList.size();
INT32 nIndex = nConnID % m_vtConnList.size();

CConnection* pConnect = m_vtConnList.at(dwIndex == 0 ? (m_vtConnList.size() - 1) : (dwIndex - 1));
CConnection* pConnect = m_vtConnList.at(nIndex == 0 ? (m_vtConnList.size() - 1) : (nIndex - 1));

if (pConnect->GetConnectionID() != nConnID)
{
Expand Down Expand Up @@ -528,7 +528,12 @@ BOOL CConnectionMgr::DeleteConnection(CConnection* pConnection)

pConnection->Reset();

nConnID += (UINT32)m_vtConnList.size();
nConnID += (INT32)m_vtConnList.size();

if (nConnID <= 0)
{
nConnID = nIndex + 1;
}

pConnection->SetConnectionID(nConnID);

Expand Down Expand Up @@ -567,6 +572,10 @@ BOOL CConnectionMgr::DestroyAllConnection()
for(size_t i = 0; i < m_vtConnList.size(); i++)
{
pConn = m_vtConnList.at(i);
if (pConn == NULL)
{
continue;
}
if (pConn->IsConnectionOK())
{
pConn->Close();
Expand All @@ -582,7 +591,7 @@ BOOL CConnectionMgr::DestroyAllConnection()
BOOL CConnectionMgr::CheckConntionAvalible(INT32 nInterval)
{
return TRUE;
UINT64 curTick = CommonFunc::GetTickCount();
UINT64 uCurTick = CommonFunc::GetTickCount();

for(std::vector<CConnection*>::size_type i = 0; i < m_vtConnList.size(); i++)
{
Expand All @@ -602,7 +611,7 @@ BOOL CConnectionMgr::CheckConntionAvalible(INT32 nInterval)
continue;
}

if(curTick > (pConnection->m_LastRecvTick + nInterval * 1000))
if(uCurTick > (pConnection->m_LastRecvTick + nInterval * 1000))
{
CLog::GetInstancePtr()->LogError("CConnectionMgr::CheckConntionAvalible 超时主动断开连接 ConnID:%d", pConnection->GetConnectionID());
pConnection->Close();
Expand All @@ -617,7 +626,7 @@ BOOL CConnectionMgr::InitConnectionList(INT32 nMaxCons, boost::asio::io_service&
ERROR_RETURN_FALSE(m_pFreeConnTail == NULL);

m_vtConnList.assign(nMaxCons, NULL);
for(UINT32 i = 0; i < nMaxCons; i++)
for(INT32 i = 0; i < nMaxCons; i++)
{
CConnection* pConn = new CConnection(ioservice);

Expand Down
8 changes: 4 additions & 4 deletions Server/Src/ServerEngine_asio/Connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class CConnection

VOID SetConnectionID(INT32 nConnID);

VOID SetConnectionData(UINT64 dwData);
VOID SetConnectionData(UINT64 uData);

BOOL Close();

Expand Down Expand Up @@ -66,7 +66,7 @@ class CConnection


BOOL m_bPacketNoCheck;
UINT32 m_nConnID;
INT32 m_nConnID;
UINT64 m_uConnData;

IDataHandler* m_pDataHandler;
Expand All @@ -76,8 +76,8 @@ class CConnection
CHAR* m_pBufPos;

IDataBuffer* m_pCurRecvBuffer;
UINT32 m_nCurBufferSize;
UINT32 m_nCheckNo;
INT32 m_nCurBufferSize;
INT32 m_nCheckNo;

volatile BOOL m_IsSending;

Expand Down
8 changes: 4 additions & 4 deletions Server/Src/ServerEngine_asio/NetManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ BOOL CNetManager::SendMessageBuff(INT32 nConnID, IDataBuffer* pBuffer)
}


BOOL CNetManager::SendMessageData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pData, UINT32 dwLen)
BOOL CNetManager::SendMessageData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pData, INT32 nLen)
{
if (nConnID <= 0)
{
Expand All @@ -195,18 +195,18 @@ BOOL CNetManager::SendMessageData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetI
return FALSE;
}

IDataBuffer* pDataBuffer = CBufferAllocator::GetInstancePtr()->AllocDataBuff(dwLen + sizeof(PacketHeader));
IDataBuffer* pDataBuffer = CBufferAllocator::GetInstancePtr()->AllocDataBuff(nLen + sizeof(PacketHeader));
ERROR_RETURN_FALSE(pDataBuffer != NULL);

PacketHeader* pHeader = (PacketHeader*)pDataBuffer->GetBuffer();
pHeader->CheckCode = CODE_VALUE;
pHeader->dwUserData = dwUserData;
pHeader->u64TargetID = u64TargetID;
pHeader->nSize = dwLen + sizeof(PacketHeader);
pHeader->nSize = nLen + sizeof(PacketHeader);
pHeader->nMsgID = nMsgID;
pHeader->nPacketNo = 1;

memcpy(pDataBuffer->GetBuffer() + sizeof(PacketHeader), pData, dwLen);
memcpy(pDataBuffer->GetBuffer() + sizeof(PacketHeader), pData, nLen);

pDataBuffer->SetTotalLenth(pHeader->nSize);

Expand Down
43 changes: 22 additions & 21 deletions Server/Src/ServerEngine_asio/NetManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,43 +12,44 @@

class CNetManager
{
CNetManager(void);
CNetManager(void);

virtual ~CNetManager(void);
virtual ~CNetManager(void);
public:
static CNetManager* GetInstancePtr()
{
static CNetManager NetManager;
static CNetManager* GetInstancePtr()
{
static CNetManager NetManager;

return &NetManager;
}
return &NetManager;
}
public:
BOOL Start(UINT16 nPortNum, INT32 nMaxConn, IDataHandler* pBufferHandler, std::string& strListenIp);
BOOL Start(UINT16 nPortNum, INT32 nMaxConn, IDataHandler* pBufferHandler, std::string& strListenIp);

BOOL Stop();
BOOL Stop();

BOOL SendMessageData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pData, UINT32 dwLen);
BOOL SendMessageData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pData, INT32 nLen);

BOOL SendMessageBuff(INT32 nConnID, IDataBuffer* pBuffer);
BOOL SendMessageBuff(INT32 nConnID, IDataBuffer* pBuffer);

BOOL WaitForConnect();

BOOL WaitForConnect();

public:

CConnection* ConnectTo_Async(std::string strIpAddr, UINT16 sPort);
CConnection* ConnectTo_Async(std::string strIpAddr, UINT16 sPort);

CConnection* ConnectTo_Sync(std::string strIpAddr, UINT16 sPort);
CConnection* ConnectTo_Sync(std::string strIpAddr, UINT16 sPort);

void HandleConnect(CConnection* pConnection, const boost::system::error_code& e);
void HandleConnect(CConnection* pConnection, const boost::system::error_code& e);

void HandleAccept(CConnection* pConnection, const boost::system::error_code& e);
void HandleAccept(CConnection* pConnection, const boost::system::error_code& e);

BOOL PostSendOperation(CConnection* pConnection);
BOOL PostSendOperation(CConnection* pConnection);

boost::asio::ip::tcp::acceptor* m_pAcceptor;
boost::asio::io_service m_IoService;
boost::thread* m_pWorkThread;
IDataHandler* m_pBufferHandler;
boost::asio::ip::tcp::acceptor* m_pAcceptor;
boost::asio::io_service m_IoService;
boost::thread* m_pWorkThread;
IDataHandler* m_pBufferHandler;
};

#endif
Expand Down
4 changes: 2 additions & 2 deletions Server/Src/ServerEngine_asio/ServiceBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ BOOL ServiceBase::SendMsgProtoBuf(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetI
return CNetManager::GetInstancePtr()->SendMessageData(nConnID, nMsgID, u64TargetID, dwUserData, szBuff, pdata.GetCachedSize());
}

BOOL ServiceBase::SendMsgRawData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pdata, UINT32 dwLen)
BOOL ServiceBase::SendMsgRawData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pdata, INT32 nLen)
{
if (nConnID <= 0)
{
Expand All @@ -112,7 +112,7 @@ BOOL ServiceBase::SendMsgRawData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID

m_nSendNum++;

return CNetManager::GetInstancePtr()->SendMessageData(nConnID, nMsgID, u64TargetID, dwUserData, pdata, dwLen);
return CNetManager::GetInstancePtr()->SendMessageData(nConnID, nMsgID, u64TargetID, dwUserData, pdata, nLen);
}

BOOL ServiceBase::SendMsgBuffer(INT32 nConnID, IDataBuffer* pDataBuffer)
Expand Down
2 changes: 1 addition & 1 deletion Server/Src/ServerEngine_asio/ServiceBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class ServiceBase : public IDataHandler//, public CEventFuncManager

BOOL SendMsgProtoBuf(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const google::protobuf::Message& pdata);

BOOL SendMsgRawData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pdata, UINT32 dwLen);
BOOL SendMsgRawData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pdata, INT32 nLen);

BOOL SendMsgBuffer(INT32 nConnID, IDataBuffer* pDataBuffer);

Expand Down
14 changes: 7 additions & 7 deletions Server/Src/ServerEngine_libuv/Connection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,11 @@ void CConnection::SetConnectionID( INT32 nConnID )
return ;
}

VOID CConnection::SetConnectionData( UINT64 dwData )
VOID CConnection::SetConnectionData( UINT64 uData )
{
ERROR_RETURN_NONE(m_nConnID != 0);

m_uConnData = dwData;
m_uConnData = uData;

return ;
}
Expand Down Expand Up @@ -477,7 +477,7 @@ BOOL CConnection::DoSend()

void CConnection::HandReaddata(size_t len)
{
HandleRecvEvent((UINT32)len);
HandleRecvEvent((INT32)len);
}


Expand Down Expand Up @@ -534,9 +534,9 @@ CConnection* CConnectionMgr::GetConnectionByID( INT32 nConnID )
{
ERROR_RETURN_NULL(nConnID != 0);

UINT32 dwIndex = nConnID % m_vtConnList.size();
INT32 nIndex = nConnID % m_vtConnList.size();

CConnection* pConnect = m_vtConnList.at(dwIndex == 0 ? (m_vtConnList.size() - 1) : (dwIndex - 1));
CConnection* pConnect = m_vtConnList.at(nIndex == 0 ? (m_vtConnList.size() - 1) : (nIndex - 1));

if (pConnect->GetConnectionID() != nConnID)
{
Expand Down Expand Up @@ -583,7 +583,7 @@ BOOL CConnectionMgr::DeleteConnection(CConnection* pConnection)

pConnection->Reset();

nConnID += (UINT32)m_vtConnList.size();
nConnID += (INT32)m_vtConnList.size();

pConnection->SetConnectionID(nConnID);

Expand Down Expand Up @@ -673,7 +673,7 @@ BOOL CConnectionMgr::InitConnectionList(INT32 nMaxCons)
ERROR_RETURN_FALSE(m_pFreeConnTail == NULL);

m_vtConnList.assign(nMaxCons, NULL);
for(UINT32 i = 0; i < nMaxCons; i++)
for(INT32 i = 0; i < nMaxCons; i++)
{
CConnection* pConn = new CConnection();

Expand Down
4 changes: 2 additions & 2 deletions Server/Src/ServerEngine_libuv/Connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class CConnection

VOID SetConnectionID(INT32 nConnID);

VOID SetConnectionData(UINT64 dwData);
VOID SetConnectionData(UINT64 uData);

BOOL Close();

Expand Down Expand Up @@ -64,7 +64,7 @@ class CConnection

BOOL m_bConnected;

UINT32 m_nConnID;
INT32 m_nConnID;
UINT64 m_uConnData;

IDataHandler* m_pDataHandler;
Expand Down
7 changes: 3 additions & 4 deletions Server/Src/ServerEngine_libuv/NetManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

void _Run_Loop(void* arg)
{

CNetManager* pNetManager = (CNetManager*)arg;

pNetManager->RunLoop();
Expand Down Expand Up @@ -256,18 +255,18 @@ BOOL CNetManager::SendMessageData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetI
return FALSE;
}

IDataBuffer* pDataBuffer = CBufferAllocator::GetInstancePtr()->AllocDataBuff(dwLen + sizeof(PacketHeader));
IDataBuffer* pDataBuffer = CBufferAllocator::GetInstancePtr()->AllocDataBuff(nLen + sizeof(PacketHeader));
ERROR_RETURN_FALSE(pDataBuffer != NULL);

PacketHeader* pHeader = (PacketHeader*)pDataBuffer->GetBuffer();
pHeader->CheckCode = CODE_VALUE;
pHeader->dwUserData = dwUserData;
pHeader->u64TargetID = u64TargetID;
pHeader->nSize = dwLen + sizeof(PacketHeader);
pHeader->nSize = nLen + sizeof(PacketHeader);
pHeader->nMsgID = nMsgID;
pHeader->nPacketNo = 1;

memcpy(pDataBuffer->GetBuffer() + sizeof(PacketHeader), pData, dwLen);
memcpy(pDataBuffer->GetBuffer() + sizeof(PacketHeader), pData, nLen);

pDataBuffer->SetTotalLenth(pHeader->nSize);

Expand Down
2 changes: 1 addition & 1 deletion Server/Src/ServerEngine_libuv/NetManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class CNetManager

BOOL Stop();

BOOL SendMessageData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pData, UINT32 dwLen);
BOOL SendMessageData(INT32 nConnID, INT32 nMsgID, UINT64 u64TargetID, UINT32 dwUserData, const char* pData, INT32 nLen);

BOOL SendMessageBuff(INT32 nConnID, IDataBuffer* pBuffer);

Expand Down
Loading

0 comments on commit 7bc7426

Please sign in to comment.