<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2006年5月16日

    ?????? 找一個開源項目來學習Java代碼,自己先讀一下,然后按自己的思路來重復實現其中一些功能!
    一.POP3
    協議

    1.?????? 目前的電子郵件基本上都是通過 POP3 網絡協議接收的。建立雙向的傳輸通道以后, pop3 服務程序會發送一系列基于 ASCII 字符的命令,下面的圖大概說明了一下!
    通常在學習的過程中,都是去寫 email 客戶端,其實一個方面是去寫一些處理的 function ;另一方面基本上就是寫一個實現 pop3 協議的包。

    ?? 常用的命令 USER,PASS,STAT,RETR,DELE QUIT. POP3 中只有兩種回應碼 ”+OK” ”-ERR” 。詳細?
    ?????? 的東西可以找RFC文檔來仔細定義.

    2.?????? package org.columba.ristretto.pop3 該包實現了 RFC1939 所指定的 POP3 協議( Post Office Protocol Version3

    3.?????? 在分析這個包之前,我們必須意識到一個完整的軟件通常都會自己去實現一些輔助的功能,該開源項目里自己實現了一些 I/O 功能。(不過這里有個疑問啊,這樣去實現一些東西,對于自己的一些應用是方便了,可是對于其他想復用這些代碼的人來說,就需要更多的學習時間)

    ?? 接口 Source 繼承自 CharSequence

    ?? 接口 Steamable 只有一個函數可以返回數據庫結構的 InputStream?
    ?4.? 這里有一個可以大概實現pop3client的例子,抄來的,很簡單不過可以實現基本的pop3client功能,對協議的理解也小有幫助!
    ???? import java.io.*;
    import java.net.*;

    class POP3Demo
    {
    ?public static void main (String[] args)
    ?{
    ??String POP3Server = "server address";
    ??int POP3Port = 110;
    ??Socket clientsocket = null;
    ??try
    ??{
    ???clientsocket = new Socket(POP3Server, POP3Port);
    ???BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    ???
    ???InputStream is =clientsocket.getInputStream();
    ???BufferedReader sockin = new BufferedReader(new InputStreamReader(is));
    ???
    ???OutputStream os = clientsocket.getOutputStream();
    ???PrintWriter sockout = new PrintWriter(os,true);
    ???
    ???System.out.println("S:"+sockin.readLine());
    ???while(true)
    ???{
    ????System.out.print("C:");
    ????String cmd = stdin.readLine();
    ????sockout.println(cmd);
    ????
    ????String reply = sockin.readLine();
    ????System.out.println("S:" + reply);
    ????
    ????if(cmd.toLowerCase().startsWith("retr")&&reply.charAt(0)=='+')
    ????do
    ????{
    ?????reply = sockin.readLine();
    ?????System.out.println("S:"+reply);
    ?????if(reply!=null && reply.length() > 0)
    ?????if(reply.charAt(0) == '.')
    ?????break;
    ????}
    ????while(true);
    ????
    ????if(cmd.toLowerCase().startsWith("quit"))
    ????break;
    ????
    ???}
    ??}
    ??catch(IOException e)
    ??{
    ???System.out.println(e.toString());
    ??}
    ??finally
    ??{
    ???try
    ???{
    ????if(clientsocket!=null)
    ????clientsocket.close();
    ???}
    ???catch(IOException e)
    ???{
    ???}
    ??}??
    ?}
    }

    posted @ 2006-05-16 17:39 Learning Java 閱讀(151) | 評論 (1)編輯 收藏
     

    ?????? 找一個開源項目來學習Java代碼,自己先讀一下,然后按自己的思路來重復實現其中一些功能!
    一.POP3
    協議

    1.?????? 目前的電子郵件基本上都是通過 POP3 網絡協議接收的。建立雙向的傳輸通道以后, pop3 服務程序會發送一系列基于 ASCII 字符的命令,下面的圖大概說明了一下!
    通常在學習的過程中,都是去寫 email 客戶端,其實一個方面是去寫一些處理的 function ;另一方面基本上就是寫一個實現 pop3 協議的包。

    ?? 常用的命令 USER,PASS,STAT,RETR,DELE QUIT. POP3 中只有兩種回應碼 ”+OK” ”-ERR” 。詳細?
    ?????? 的東西可以找RFC文檔來仔細定義.

    2.?????? package org.columba.ristretto.pop3 該包實現了 RFC1939 所指定的 POP3 協議( Post Office Protocol Version3

    3.?????? 在分析這個包之前,我們必須意識到一個完整的軟件通常都會自己去實現一些輔助的功能,該開源項目里自己實現了一些 I/O 功能。(不過這里有個疑問啊,這樣去實現一些東西,對于自己的一些應用是方便了,可是對于其他想復用這些代碼的人來說,就需要更多的學習時間)

    ?? 接口 Source 繼承自 CharSequence

    ?? 接口 Steamable 只有一個函數可以返回數據庫結構的 InputStream?
    ?4.? 有一個可以大概實現pop3client的例子(從別處抄來)很簡單不過可以實現基本的pop3client功能,對協議的理解也小有幫助!
    ???? import java.io.*;
    import java.net.*;

    class POP3Demo
    {
    ?public static void main (String[] args)
    ?{
    ??String POP3Server = "server address";
    ??int POP3Port = 110;
    ??Socket clientsocket = null;
    ??try
    ??{
    ???clientsocket = new Socket(POP3Server, POP3Port);
    ???BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    ???
    ???InputStream is =clientsocket.getInputStream();
    ???BufferedReader sockin = new BufferedReader(new InputStreamReader(is));
    ???
    ???OutputStream os = clientsocket.getOutputStream();
    ???PrintWriter sockout = new PrintWriter(os,true);
    ???
    ???System.out.println("S:"+sockin.readLine());
    ???while(true)
    ???{
    ????System.out.print("C:");
    ????String cmd = stdin.readLine();
    ????sockout.println(cmd);
    ????
    ????String reply = sockin.readLine();
    ????System.out.println("S:" + reply);
    ????
    ????if(cmd.toLowerCase().startsWith("retr")&&reply.charAt(0)=='+')
    ????do
    ????{
    ?????reply = sockin.readLine();
    ?????System.out.println("S:"+reply);
    ?????if(reply!=null && reply.length() > 0)
    ?????if(reply.charAt(0) == '.')
    ?????break;
    ????}
    ????while(true);
    ????
    ????if(cmd.toLowerCase().startsWith("quit"))
    ????break;
    ????
    ???}
    ??}
    ??catch(IOException e)
    ??{
    ???System.out.println(e.toString());
    ??}
    ??finally
    ??{
    ???try
    ???{
    ????if(clientsocket!=null)
    ????clientsocket.close();
    ???}
    ???catch(IOException e)
    ???{
    ???}
    ??}??
    ?}
    }

    posted @ 2006-05-16 17:38 Learning Java 閱讀(103) | 評論 (0)編輯 收藏
     
    主站蜘蛛池模板: 久久性生大片免费观看性| 久久不见久久见免费视频7| 国产亚洲综合一区柠檬导航| 欧洲精品99毛片免费高清观看| 色在线亚洲视频www| 一本色道久久88亚洲综合| 中文字幕无码免费久久| 中国china体内裑精亚洲日本| 亚洲成a人片在线观看老师| 99久在线国内在线播放免费观看| 亚洲情A成黄在线观看动漫软件| 亚洲男人av香蕉爽爽爽爽| 国内精品免费麻豆网站91麻豆| 特级毛片aaaa级毛片免费| 亚洲国产香蕉碰碰人人| 尤物永久免费AV无码网站| 99久久99久久精品免费观看| 污污视频网站免费观看| 91嫩草亚洲精品| 亚洲精品无码久久久影院相关影片| 啦啦啦手机完整免费高清观看| 在线观看片免费人成视频无码| 精品亚洲av无码一区二区柚蜜| 亚洲美女自拍视频| 狠狠色婷婷狠狠狠亚洲综合 | 99久久人妻精品免费一区| 亚洲aⅴ无码专区在线观看| 亚洲视频在线一区| 青青草原亚洲视频| 妞干网免费视频观看| 99热在线观看免费| 中国一级特黄高清免费的大片中国一级黄色片 | 无遮挡国产高潮视频免费观看| 亚洲成a人片在线网站| 国产亚洲AV手机在线观看| 日产乱码一卡二卡三免费| 男女做羞羞的事视频免费观看无遮挡| 中国好声音第二季免费播放| 免费夜色污私人影院网站电影| 国产午夜亚洲精品| 亚洲人成网站在线观看播放动漫|