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

📄 pop3client.java

📁 Pop3协议的java实现代码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
    private final void parseRset() throws IOException    {        int l_byteCount = m_io.readLine( m_response );        if ( setStatusInfo( m_response, l_byteCount, m_responseMessage ) )        {            m_notifySink.reset( m_responseMessage );        }        else        {            m_notifySink.error( m_responseMessage );        }    }    private final void parseRetr() throws IOException    {        int l_nextByte;        int l_byteCount;        int l_curByteCount;        int l_octetCount;        boolean l_responseStatus;        if ( m_multiLineState == false )        {            l_byteCount = m_io.readLine( m_response );            if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )            {                int ret_offset = getNextToken( m_response, 3, m_tokenBuffer );		if (ret_offset != 3) // there was an octetCount after +OK		{                	l_octetCount = m_common.atoi (m_tokenBuffer);                	m_notifySink.retrieveStart (m_currentMessageNumber, l_octetCount);		}		else		{                	m_notifySink.retrieveStart (m_currentMessageNumber, 0);		}            }            else            {                m_notifySink.error( m_responseMessage );                return;            }            m_multiLineState = true;            m_messageDataSize = 0;        }        m_io.readLine( m_responseLine );        m_responseLine.append( '\r' );        m_responseLine.append( '\n' );        l_byteCount = m_responseLine.length();        while( ( m_responseLine.charAt(0) != '.') || ( l_byteCount != 3 ) )        {            l_curByteCount = 0;            if ( m_responseLine.charAt(0) == '.' )            {                l_curByteCount++;            }            while ( l_curByteCount < l_byteCount )            {                if ( m_messageDataSize == m_messageData.length )                {                    m_notifySink.retrieve( m_messageData );                    m_messageDataSize = 0;                }                m_messageData[m_messageDataSize++] = (byte)m_responseLine.charAt(l_curByteCount++);            }            m_io.readLine( m_responseLine );            m_responseLine.append( '\r' );            m_responseLine.append( '\n' );            l_byteCount = m_responseLine.length();        }        if ( m_messageDataSize > 0 )        {            byte[] l_buffer = new byte[m_messageDataSize];            for ( int i = 0; i < m_messageDataSize; i++ )            {                l_buffer[i] = m_messageData[i];            }            m_notifySink.retrieve( l_buffer );        }        m_multiLineState = false;        m_notifySink.retrieveComplete();    }    private final void parseSendCommandA() throws IOException    {        int l_byteCount = m_io.readLine( m_response );        if ( setStatusInfo( m_response, l_byteCount, m_responseMessage ) )        {            m_notifySink.sendCommandStart();            m_notifySink.sendCommand( m_responseMessage );            m_notifySink.sendCommandComplete();        }        else        {            m_notifySink.error( m_responseMessage );        }    }    private final void parseSendCommand() throws IOException    {        int l_byteCount;        boolean l_responseStatus;        if ( m_multiLineState == false )        {            l_byteCount = m_io.readLine( m_response );            if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )            {                m_notifySink.listStart();            }            else            {                m_notifySink.error( m_responseMessage );                return;            }            m_multiLineState = true;        }        l_byteCount = m_io.readLine( m_response );        while( ('.' != (char)m_response[0]) && ( l_byteCount != 1 ) )        {            toStringBuffer( m_responseMessage, m_response, 0, l_byteCount );            m_notifySink.sendCommand( m_responseMessage );            m_io.readLine( m_response );        }        m_multiLineState = false;        m_notifySink.sendCommandComplete();    }    private final void parseStat() throws IOException    {        int l_offset = 3;        int l_messageCount;        int l_octetCount;        int l_byteCount = m_io.readLine( m_response );        if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )        {            l_offset = getNextToken( m_response, l_offset, m_tokenBuffer );            l_messageCount = m_common.atoi( m_tokenBuffer );            l_offset = getNextToken( m_response, l_offset, m_tokenBuffer );            l_octetCount = m_common.atoi( m_tokenBuffer );            m_notifySink.stat( l_messageCount, l_octetCount );        }        else        {            m_notifySink.error( m_responseMessage );        }    }    private final void parseTop() throws IOException    {        int l_byteCount;        boolean l_responseStatus;        if ( m_multiLineState == false )        {            l_byteCount = m_io.readLine( m_response );            if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )            {                m_notifySink.topStart( m_currentMessageNumber );            }            else            {                m_notifySink.error( m_responseMessage );                return;            }            m_multiLineState = true;        }        l_byteCount = m_io.readLine( m_response );        while( ('.' != (char)m_response[0]) && ( l_byteCount != 1 ) )        {            if ( '.' != (char)m_response[0] )            {                toStringBuffer( m_responseMessage, m_response, 0, l_byteCount );            }            else            {                toStringBuffer( m_responseMessage, m_response, 1, l_byteCount - 1 );            }            m_notifySink.top( m_responseMessage );            l_byteCount = m_io.readLine( m_response );        }        m_multiLineState = false;        m_notifySink.topComplete();    }    private final void parseUidlA() throws IOException    {        int l_offset = 3;        int l_messageNumber;        int l_byteCount = m_io.readLine( m_response );        if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )        {            m_notifySink.uidListStart();            l_offset = getNextToken( m_response, l_offset, m_tokenBuffer );            l_messageNumber = m_common.atoi( m_tokenBuffer );            getNextToken( m_response, l_offset, m_tokenBuffer );            toStringBuffer( m_responseMessage, m_tokenBuffer, 0, l_byteCount - l_offset );            m_notifySink.uidList( l_messageNumber, m_responseMessage );            m_notifySink.uidListComplete();        }        else        {            m_notifySink.error( m_responseMessage );        }    }    private final void parseUidl() throws IOException    {        int l_offset = 0;        int l_byteCount;        int l_messageNumber;        boolean l_responseStatus;        if ( m_multiLineState == false )        {            l_byteCount = m_io.readLine( m_response );            if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )            {                m_notifySink.uidListStart();            }            else            {                m_notifySink.error( m_responseMessage );                return;            }            m_multiLineState = true;        }        l_byteCount = m_io.readLine( m_response );        while( ('.' != (char)m_response[0]) && ( l_byteCount != 1 ) )        {            l_offset = getNextToken( m_response, l_offset, m_tokenBuffer );            l_messageNumber = m_common.atoi( m_tokenBuffer );            getNextToken( m_response, l_offset, m_tokenBuffer );            toStringBuffer( m_responseMessage, m_tokenBuffer, 0, l_byteCount - l_offset );            l_offset = 0;            m_notifySink.uidList( l_messageNumber, m_responseMessage );            l_byteCount = m_io.readLine( m_response );        }        m_multiLineState = false;        m_notifySink.uidListComplete();    }    private final void parseUser() throws IOException    {        int l_byteCount = m_io.readLine( m_response );        if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )        {            m_notifySink.user( m_responseMessage );        }        else        {            m_notifySink.error( m_responseMessage );        }    }    private final void parseXAuthListA() throws IOException    {        int l_offset = 3;        int l_octetCount;        int l_messageNumber;        int l_byteCount = m_io.readLine( m_response );        if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )        {            m_notifySink.xAuthListStart();            l_offset = getNextToken( m_response, l_offset, m_tokenBuffer );            l_messageNumber = m_common.atoi( m_tokenBuffer );            l_offset = getNextToken( m_response, l_offset, m_tokenBuffer );            l_octetCount = m_common.atoi( m_tokenBuffer );            getNextToken( m_response, l_offset, m_tokenBuffer );            toStringBuffer( m_responseMessage, m_tokenBuffer, 0, l_byteCount - l_offset );            m_notifySink.xAuthList( l_messageNumber, l_octetCount, m_responseMessage );            m_notifySink.xAuthListComplete();        }        else        {            m_notifySink.error( m_responseMessage );        }    }    private final void parseXAuthList() throws IOException    {        int l_offset = 0;        int l_byteCount;        int l_octetCount;        int l_messageNumber;        boolean l_responseStatus;        if ( m_multiLineState == false )        {            l_byteCount = m_io.readLine( m_response );            if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )            {                m_notifySink.xAuthListStart();            }            else            {                m_notifySink.error( m_responseMessage );                return;            }            m_multiLineState = true;        }        l_byteCount = m_io.readLine( m_response );        while( ('.' != (char)m_response[0]) && ( l_byteCount != 1 ) )        {            l_offset = getNextToken( m_response, l_offset, m_tokenBuffer );            l_messageNumber = m_common.atoi( m_tokenBuffer );            l_offset = getNextToken( m_response, l_offset, m_tokenBuffer );            l_octetCount = m_common.atoi( m_tokenBuffer );            getNextToken( m_response, l_offset, m_tokenBuffer );            toStringBuffer( m_responseMessage, m_tokenBuffer, 0, l_byteCount - l_offset );            l_offset = 0;            m_notifySink.xAuthList( l_messageNumber, l_octetCount, m_responseMessage );            l_byteCount = m_io.readLine( m_response );        }        m_multiLineState = false;        m_notifySink.xAuthListComplete();    }    private final void parseXSender() throws IOException    {        int l_byteCount = m_io.readLine( m_response );        if ( setStatusInfo(m_response, l_byteCount, m_responseMessage) )        {            m_notifySink.xSender( m_responseMessage );        }        else        {            m_notifySink.error( m_responseMessage );        }    }}

⌨️ 快捷键说明

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