コード例 #1
0
ファイル: MultiXL3.cpp プロジェクト: bmanojlovic/bforce8583
CMultiXLayer::EventHandlerReturn	CMultiXL3::EventHandler(CMultiXEvent &Event)
{
	switch(Event.EventCode())
	{
		case	CMultiXEvent::L2ConnectCompleted	:
			return	OnConnectCompleted(Event);
			break;
		case	CMultiXEvent::L2AcceptCompleted	:
			return	OnAcceptCompleted(Event);
			break;
		case	CMultiXEvent::L2NewBlockReceived	:
			return	OnNewBlockReceived(Event);
			break;
		case	CMultiXEvent::L2SendCompleted	:
			return	OnSendCompleted(Event);
			break;
		case	CMultiXEvent::L2CloseCompleted	:
			return	OnCloseCompleted(Event);
			break;
	}

	Event.Target()	=	this->UpperLayer();
	MultiX().QueueEvent(&Event);
	return	CMultiXLayer::KeepEvent;
}
コード例 #2
0
ファイル: SocketSharp.cpp プロジェクト: firehot/WH2008
//关闭连接
bool CServerSocketItem::CloseSocket(WORD wRountID)
{
	//状态判断
	if (m_wRountID!=wRountID) return false;

	//关闭连接
	if (m_hSocket!=INVALID_SOCKET)
	{
		closesocket(m_hSocket);
		m_hSocket=INVALID_SOCKET;
	}

	//判断关闭
	if ((m_bRecvIng==false)&&(m_OverLappedSendActive.GetCount()==0)) OnCloseCompleted();

	return true;
}