📄 pop3client.java
字号:
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 + -