SOCKET CTCPSocketAsync::Detach() { //Remove it from the async socket RemoveSocketFromList(); //Delegate return CTCPSocket::Detach(); }
void CTCPSocketAsync::BeforeAccept() { try { //Remove ourselves RemoveSocketFromList(); } ERROR_HANDLER("BeforeAccept") }
BOOL CUDPSocketAsync::Close() { try { //Quit if not ok if (!ValidSocket()) return FALSE; //Kill the timer CAsyncSocket::SocketClosing(); //Remove from socket list RemoveSocketFromList(); //Delegate call return CUDPSocket::Close(); } ERROR_HANDLER_RETURN("Close",FALSE) }
/********************************************************* 函数名称:FileTransRelay 功能描述:指示文件传输的开始和结束 作者: 余志荣 创建时间:2016-08-30 参数说明:msg_file -- 返 回 值:TRUE -- 移除成功 FALSE -- 移除失败 *********************************************************/ int CSocketServerDlg::FileTransOpera(MSG_FILE_OPERA* msg_opera, CChatSocket *pSocket) { if (msg_opera->nType == MESSAGE_FILE_TRANS_END) // 文件socket传来的消息 {// 收到文件传输结束消息 断开两边的socket连接 pSocket->Close(); RemoveSocketFromList(pSocket); /*POSITION pos = m_FileSocketList.GetHeadPosition(); while (pos != NULL) { CChatSocket *p = m_FileSocketList.GetAt(pos); if (!strcmp(p->m_userID, msg_opera->ToID)) { p->Close(); m_FileSocketList.RemoveAt(pos); break; } m_FileSocketList.GetNext(pos); }*/ } return 0; }
BOOL CTCPSocketAsync::Close() { try { //Quit if not ok if (!ValidSocket()) return FALSE; //Delegate to remove socket if (m_pLinkedSocket && m_bCloseEventsOnly) m_pLinkedSocket->Close(); //Kill the timer CAsyncSocket::SocketClosing(); //Remove from socket list RemoveSocketFromList(); //Done return CTCPSocket::Close(); } ERROR_HANDLER_RETURN("Close",FALSE) }