Exemple #1
0
void CConnectClient::ClinetClose(EM_s2s& ems2s)
{
	m_ems2s = ems2s;
    //msg_queue()->deactivate();

	//如果对象已经在外面释放,则不需要再次回调
	if(ems2s == S2S_INNEED_CALLBACK)
	{
		SetClientMessage(NULL);
	}

    shutdown();
}
Exemple #2
0
void CProConnectClient::ClientClose(EM_s2s& ems2s)
{
	if(this->handle() != ACE_INVALID_HANDLE)
	{
		m_ems2s = ems2s;

		//如果对象已经在外面释放,则不需要再次回调
		if(ems2s == S2S_INNEED_CALLBACK)
		{
			SetClientMessage(NULL);
		}

		ACE_OS::shutdown(this->handle(), SD_SEND);
		ACE_OS::closesocket(this->handle());
		this->handle(ACE_INVALID_HANDLE);
	}
}