⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 69.htm

📁 网络编程原理文摘 [文件] 精华区目录结构 [目录] 网络编程的基本原理 [目录] 网络编程与网络协议 [目录] 网上资源 [目录] winsock技术 [目录
💻 HTM
字号:
<HTML><HEAD><TITLE>CTerm非常精华下载</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type></HEAD>
<BODY bgColor=#ffffff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=100% background=0044.jpg>
  <BODY>
  <TR>
    <TD height=150 rowSpan=2 width="308" ><IMG alt=DDl_back.jpg height=129 width=300 src="DDl_back.jpg" ></TD>
    <TD background=DDl_back2.jpg height=50 width="581" ><BIG><BIG><FONT face=黑体>
      <P align=center >重拳出击  一网打尽</FONT></BIG></BIG></P></TD></TR>
  <TR>
    <TD bgColor=#0099ff borderColor=#0099ff height=5 width="581"></TD></TR>
  <TR>
    <TD align=middle colSpan=2 height=100 vAlign=top width="891" ><BR>
<p align=center>[<a href="清华bbs网络资源.htm">回到开始</a>][<a href="8.htm">上一层</a>][<a href="70.htm">下一篇</a>]
<hr><p align="left"><small>发信人: baohongwei (bhw), 信区: Winsock <br>

标  题: pop3 编程3 <br>

发信站: BBS 水木清华站 (Thu Nov 20 20:22:47 1997) <br>

  <br>

// SG_POP3PrimarySocket.cpp : implementation file <br>

// <br>

  <br>

#include "stdafx.h" <br>

#include "SG_POP3PrimarySocket.h" <br>

#include "SG_POP3SecondarySocket.h" <br>

#include "..\\SGConfigAPI.h" <br>

#ifdef _DEBUG <br>

#define new DEBUG_NEW <br>

#undef THIS_FILE <br>

static char THIS_FILE[] = __FILE__; <br>

#endif <br>

#define POP3_PORT 110 <br>

///////////////////////////////////////////////////////////////////////////// <br>

// CSG_POP3PrimarySocket <br>

  <br>

CSG_POP3PrimarySocket::CSG_POP3PrimarySocket() <br>

{ <br>

        m_bClosed=FALSE; <br>



} <br>

  <br>

CSG_POP3PrimarySocket::~CSG_POP3PrimarySocket() <br>

{ <br>

        //Close(); <br>

        //m_connectionList <br>

} <br>

  <br>

  <br>

// Do not edit the following lines, which are needed by ClassWizard. <br>

#if 0 <br>

BEGIN_MESSAGE_MAP(CSG_POP3PrimarySocket, CSocket) <br>

        //{{AFX_MSG_MAP(CSG_POP3PrimarySocket) <br>

        //}}AFX_MSG_MAP <br>

END_MESSAGE_MAP() <br>

#endif  // 0 <br>

  <br>

///////////////////////////////////////////////////////////////////////////// <br>

// CSG_POP3PrimarySocket member functions <br>

  <br>

BOOL CSG_POP3PrimarySocket::StartUp() <br>

{ <br>

{ <br>

        return TRUE; <br>

} <br>

  <br>

void CSG_POP3PrimarySocket::OnAccept(int nErrorCode) <br>

{ <br>

        // TODO: Add your specialized code here and/or call the base class <br>

        CSG_POP3SecondarySocket* pSocket = new CSG_POP3SecondarySocket(this); <br>

        TRY <br>

        { <br>

                if(Accept(*pSocket)) <br>

                { <br>

                        pSocket->Init(); <br>

                        m_connectionList.AddTail(pSocket); <br>

                } <br>

                else <br>

                        delete pSocket; <br>

        } <br>

        CATCH(CException,e) <br>

        { <br>

                e->Delete(); <br>

                SGSystemLog("Pop3 Server Error-------->OnAccept()\r\n"); <br>

                if(pSocket) <br>



                        delete pSocket; <br>

                int errNum=GetLastError(); <br>

                if(errNum==WSAEMFILE) <br>

                { <br>

                        SGSystemLog("Pop3 Server Accept Que is Empty!!\n"); <br>

                } <br>

        } <br>

        END_CATCH <br>

} <br>

  <br>

  <br>

void CSG_POP3PrimarySocket::CloseSocket() <br>

{ <br>

        if(m_bClosed) <br>

                return; <br>

        m_bClosed=TRUE; <br>

  <br>

        ShutDown(both); <br>

        Close(); <br>

  <br>

        CSG_POP3SecondarySocket *pSocket; <br>

        for (POSITION pos=m_connectionList.GetHeadPosition(); pos!=NULL;) <br>



        { <br>

                pSocket = (CSG_POP3SecondarySocket *)m_connectionList.GetNext(poos); <br>

                pSocket->ShutDown(both); <br>

                pSocket->Close(); <br>

                delete pSocket; <br>

        } <br>

        m_connectionList.RemoveAll(); <br>

} <br>

  <br>

void CSG_POP3PrimarySocket::RemoveAt(CSG_POP3SecondarySocket * pClient) <br>

{ <br>

        POSITION posNext,posCur; <br>

  <br>

        if(pClient==NULL) <br>

                return; <br>

        for(posNext=m_connectionList.GetHeadPosition();posNext!=NULL;) <br>

        { <br>

                posCur=posNext; <br>

                CSG_POP3SecondarySocket *pSocket=(CSG_POP3SecondarySocket*)m_connnectionList.GetNext(posNext); <br>

                if(pClient==pSocket) <br>

                { <br>

                        m_connectionList.RemoveAt(posCur); <br>

  <br>

void CSG_POP3PrimarySocket::RemoveAt(CSG_POP3SecondarySocket * pClient) <br>

{ <br>

        POSITION posNext,posCur; <br>

  <br>

        if(pClient==NULL) <br>

                return; <br>

        for(posNext=m_connectionList.GetHeadPosition();posNext!=NULL;) <br>

        { <br>

                posCur=posNext; <br>

                CSG_POP3SecondarySocket *pSocket=(CSG_POP3SecondarySocket*)m_con <br>

                if(pClient==pSocket) <br>

                { <br>

                        m_connectionList.RemoveAt(posCur); <br>

                        break; <br>

                } <br>

        } <br>

        delete pClient; <br>

} <br>

  <br>

  <br>

-- <br>

※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 210.32.133.157] <br>

</small><hr>
<p align="center">[<a href="清华bbs网络资源.htm">回到开始</a>][<a href="8.htm">上一层</a>][<a href="70.htm">下一篇</a>]<p align="center" ><font face="黑体" size=5><big>网络资源大全</big></font></p> 
</table> 
</body> 
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -