﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-wangvye</title><link>http://www.blogjava.net/wangvye/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 08:58:00 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 08:58:00 GMT</pubDate><ttl>60</ttl><item><title>Java学习(1)</title><link>http://www.blogjava.net/wangvye/archive/2006/05/16/46445.html</link><dc:creator>Learning Java </dc:creator><author>Learning Java </author><pubDate>Tue, 16 May 2006 09:39:00 GMT</pubDate><guid>http://www.blogjava.net/wangvye/archive/2006/05/16/46445.html</guid><wfw:comment>http://www.blogjava.net/wangvye/comments/46445.html</wfw:comment><comments>http://www.blogjava.net/wangvye/archive/2006/05/16/46445.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/wangvye/comments/commentRss/46445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangvye/services/trackbacks/46445.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<span lang="EN-US">       找一个开源项目来学习Java代码,自己先读一下，然后按自己的思路来重复实现其中一些功能!<br />一.POP3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 39.0pt">
				<span lang="EN-US">1.<span style="FONT: 7pt 'Times New Roman'">       </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目前的电子邮件基本上都是通过</span>
				<span lang="EN-US">POP3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">网络协议接收的。建立双向的传输通道以后，</span>
				<span lang="EN-US">pop3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务程序会发送一系列基于</span>
				<span lang="EN-US">ASCII</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">字符的命令，下面的图大概说明了一下！<br /></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通常在学习的过程中，都是去写</span>
				<span lang="EN-US">email</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">客户端，其实一个方面是去写一些处理的</span>
				<span lang="EN-US">function</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；另一方面基本上就是写一个实现</span>
				<span lang="EN-US">pop3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议的包。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">   常用的命令</span>
				<span lang="EN-US">USER,PASS,STAT,RETR,DELE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">QUIT. POP3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中只有两种回应码</span>
				<span lang="EN-US">”+OK”</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">”-ERR”</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。详细 <br />       的东西可以找RFC文档来仔细定义.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 39.0pt">
				<span lang="EN-US">2.<span style="FONT: 7pt 'Times New Roman'">       </span></span>
				<span lang="EN-US">package org.columba.ristretto.pop3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">该包实现了</span>
				<span lang="EN-US">RFC1939</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所指定的</span>
				<span lang="EN-US">POP3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议（</span>
				<span lang="EN-US">Post Office Protocol Version3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 39.0pt">
				<span lang="EN-US">3.<span style="FONT: 7pt 'Times New Roman'">       </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在分析这个包之前，我们必须意识到一个完整的软件通常都会自己去实现一些辅助的功能，该开源项目里自己实现了一些</span>
				<span lang="EN-US">I/O</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">功能。(不过这里有个疑问啊，这样去实现一些东西，对于自己的一些应用是方便了，可是对于其他想复用这些代码的人来说,就需要更多的学习时间)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">   接口</span>
				<span lang="EN-US">Source</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">继承自</span>
				<span lang="EN-US">CharSequence</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">   接口</span>
				<span lang="EN-US">Steamable </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只有一个函数可以返回数据库结构的</span>
				<span lang="EN-US">InputStream <br /> 4.  这里有一个可以大概实现pop3client的例子,抄来的,很简单不过可以实现基本的pop3client功能,对协议的理解也小有帮助!<br />     import java.io.*;<br />import java.net.*;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">class POP3Demo<br />{<br /> public static void main (String[] args)<br /> {<br />  String POP3Server = "<font color="#ff6600">server address</font>";<br />  int POP3Port = 110;<br />  Socket clientsocket = null;<br />  try<br />  {<br />   clientsocket = new Socket(POP3Server, POP3Port);<br />   BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); <br />   <br />   InputStream is =clientsocket.getInputStream();<br />   BufferedReader sockin = new BufferedReader(new InputStreamReader(is));<br />   <br />   OutputStream os = clientsocket.getOutputStream();<br />   PrintWriter sockout = new PrintWriter(os,true);<br />   <br />   System.out.println("S:"+sockin.readLine());<br />   while(true)<br />   {<br />    System.out.print("C:");<br />    String cmd = stdin.readLine();<br />    sockout.println(cmd);<br />    <br />    String reply = sockin.readLine();<br />    System.out.println("S:" + reply);<br />    <br />    if(cmd.toLowerCase().startsWith("retr")&amp;&amp;reply.charAt(0)=='+')<br />    do<br />    {<br />     reply = sockin.readLine();<br />     System.out.println("S:"+reply);<br />     if(reply!=null &amp;&amp; reply.length() &gt; 0)<br />     if(reply.charAt(0) == '.')<br />     break;<br />    }<br />    while(true);<br />    <br />    if(cmd.toLowerCase().startsWith("quit"))<br />    break;<br />    <br />   }<br />  }<br />  catch(IOException e)<br />  {<br />   System.out.println(e.toString());<br />  }<br />  finally<br />  {<br />   try<br />   {<br />    if(clientsocket!=null)<br />    clientsocket.close();<br />   }<br />   catch(IOException e)<br />   {<br />   }<br />  }  <br /> }<br />}</span>
		</p>
<img src ="http://www.blogjava.net/wangvye/aggbug/46445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangvye/" target="_blank">Learning Java </a> 2006-05-16 17:39 <a href="http://www.blogjava.net/wangvye/archive/2006/05/16/46445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java学习(1)</title><link>http://www.blogjava.net/wangvye/archive/2006/05/16/46444.html</link><dc:creator>Learning Java </dc:creator><author>Learning Java </author><pubDate>Tue, 16 May 2006 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/wangvye/archive/2006/05/16/46444.html</guid><wfw:comment>http://www.blogjava.net/wangvye/comments/46444.html</wfw:comment><comments>http://www.blogjava.net/wangvye/archive/2006/05/16/46444.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangvye/comments/commentRss/46444.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangvye/services/trackbacks/46444.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<span lang="EN-US">       找一个开源项目来学习Java代码,自己先读一下，然后按自己的思路来重复实现其中一些功能!<br />一.POP3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 39.0pt">
				<span lang="EN-US">1.<span style="FONT: 7pt 'Times New Roman'">       </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目前的电子邮件基本上都是通过</span>
				<span lang="EN-US">POP3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">网络协议接收的。建立双向的传输通道以后，</span>
				<span lang="EN-US">pop3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务程序会发送一系列基于</span>
				<span lang="EN-US">ASCII</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">字符的命令，下面的图大概说明了一下！<br /></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通常在学习的过程中，都是去写</span>
				<span lang="EN-US">email</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">客户端，其实一个方面是去写一些处理的</span>
				<span lang="EN-US">function</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；另一方面基本上就是写一个实现</span>
				<span lang="EN-US">pop3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议的包。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">   常用的命令</span>
				<span lang="EN-US">USER,PASS,STAT,RETR,DELE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">QUIT. POP3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中只有两种回应码</span>
				<span lang="EN-US">”+OK”</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">”-ERR”</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。详细 <br />       的东西可以找RFC文档来仔细定义.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 39.0pt">
				<span lang="EN-US">2.<span style="FONT: 7pt 'Times New Roman'">       </span></span>
				<span lang="EN-US">package org.columba.ristretto.pop3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">该包实现了</span>
				<span lang="EN-US">RFC1939</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所指定的</span>
				<span lang="EN-US">POP3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议（</span>
				<span lang="EN-US">Post Office Protocol Version3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 39.0pt">
				<span lang="EN-US">3.<span style="FONT: 7pt 'Times New Roman'">       </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在分析这个包之前，我们必须意识到一个完整的软件通常都会自己去实现一些辅助的功能，该开源项目里自己实现了一些</span>
				<span lang="EN-US">I/O</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">功能。(不过这里有个疑问啊，这样去实现一些东西，对于自己的一些应用是方便了，可是对于其他想复用这些代码的人来说,就需要更多的学习时间)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">   接口</span>
				<span lang="EN-US">Source</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">继承自</span>
				<span lang="EN-US">CharSequence</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">   接口</span>
				<span lang="EN-US">Steamable </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只有一个函数可以返回数据库结构的</span>
				<span lang="EN-US">InputStream <br /> 4.  有一个可以大概实现pop3client的例子(从别处抄来)很简单不过可以实现基本的pop3client功能,对协议的理解也小有帮助!<br />     import java.io.*;<br />import java.net.*;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">class POP3Demo<br />{<br /> public static void main (String[] args)<br /> {<br />  String POP3Server = "<font color="#ff6600">server address</font>";<br />  int POP3Port = 110;<br />  Socket clientsocket = null;<br />  try<br />  {<br />   clientsocket = new Socket(POP3Server, POP3Port);<br />   BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); <br />   <br />   InputStream is =clientsocket.getInputStream();<br />   BufferedReader sockin = new BufferedReader(new InputStreamReader(is));<br />   <br />   OutputStream os = clientsocket.getOutputStream();<br />   PrintWriter sockout = new PrintWriter(os,true);<br />   <br />   System.out.println("S:"+sockin.readLine());<br />   while(true)<br />   {<br />    System.out.print("C:");<br />    String cmd = stdin.readLine();<br />    sockout.println(cmd);<br />    <br />    String reply = sockin.readLine();<br />    System.out.println("S:" + reply);<br />    <br />    if(cmd.toLowerCase().startsWith("retr")&amp;&amp;reply.charAt(0)=='+')<br />    do<br />    {<br />     reply = sockin.readLine();<br />     System.out.println("S:"+reply);<br />     if(reply!=null &amp;&amp; reply.length() &gt; 0)<br />     if(reply.charAt(0) == '.')<br />     break;<br />    }<br />    while(true);<br />    <br />    if(cmd.toLowerCase().startsWith("quit"))<br />    break;<br />    <br />   }<br />  }<br />  catch(IOException e)<br />  {<br />   System.out.println(e.toString());<br />  }<br />  finally<br />  {<br />   try<br />   {<br />    if(clientsocket!=null)<br />    clientsocket.close();<br />   }<br />   catch(IOException e)<br />   {<br />   }<br />  }  <br /> }<br />}</span>
		</p>
<img src ="http://www.blogjava.net/wangvye/aggbug/46444.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangvye/" target="_blank">Learning Java </a> 2006-05-16 17:38 <a href="http://www.blogjava.net/wangvye/archive/2006/05/16/46444.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>