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

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

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

    2006年5月16日

    ?????? 找一個(gè)開源項(xiàng)目來學(xué)習(xí)Java代碼,自己先讀一下,然后按自己的思路來重復(fù)實(shí)現(xiàn)其中一些功能!
    一.POP3
    協(xié)議

    1.?????? 目前的電子郵件基本上都是通過 POP3 網(wǎng)絡(luò)協(xié)議接收的。建立雙向的傳輸通道以后, pop3 服務(wù)程序會(huì)發(fā)送一系列基于 ASCII 字符的命令,下面的圖大概說明了一下!
    通常在學(xué)習(xí)的過程中,都是去寫 email 客戶端,其實(shí)一個(gè)方面是去寫一些處理的 function ;另一方面基本上就是寫一個(gè)實(shí)現(xiàn) pop3 協(xié)議的包。

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

    2.?????? package org.columba.ristretto.pop3 該包實(shí)現(xiàn)了 RFC1939 所指定的 POP3 協(xié)議( Post Office Protocol Version3

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

    ?? 接口 Source 繼承自 CharSequence

    ?? 接口 Steamable 只有一個(gè)函數(shù)可以返回?cái)?shù)據(jù)庫結(jié)構(gòu)的 InputStream?
    ?4.? 這里有一個(gè)可以大概實(shí)現(xiàn)pop3client的例子,抄來的,很簡單不過可以實(shí)現(xiàn)基本的pop3client功能,對(duì)協(xié)議的理解也小有幫助!
    ???? 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 閱讀(150) | 評(píng)論 (1)編輯 收藏
     

    ?????? 找一個(gè)開源項(xiàng)目來學(xué)習(xí)Java代碼,自己先讀一下,然后按自己的思路來重復(fù)實(shí)現(xiàn)其中一些功能!
    一.POP3
    協(xié)議

    1.?????? 目前的電子郵件基本上都是通過 POP3 網(wǎng)絡(luò)協(xié)議接收的。建立雙向的傳輸通道以后, pop3 服務(wù)程序會(huì)發(fā)送一系列基于 ASCII 字符的命令,下面的圖大概說明了一下!
    通常在學(xué)習(xí)的過程中,都是去寫 email 客戶端,其實(shí)一個(gè)方面是去寫一些處理的 function ;另一方面基本上就是寫一個(gè)實(shí)現(xiàn) pop3 協(xié)議的包。

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

    2.?????? package org.columba.ristretto.pop3 該包實(shí)現(xiàn)了 RFC1939 所指定的 POP3 協(xié)議( Post Office Protocol Version3

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

    ?? 接口 Source 繼承自 CharSequence

    ?? 接口 Steamable 只有一個(gè)函數(shù)可以返回?cái)?shù)據(jù)庫結(jié)構(gòu)的 InputStream?
    ?4.? 有一個(gè)可以大概實(shí)現(xiàn)pop3client的例子(從別處抄來)很簡單不過可以實(shí)現(xiàn)基本的pop3client功能,對(duì)協(xié)議的理解也小有幫助!
    ???? 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 閱讀(102) | 評(píng)論 (0)編輯 收藏
    僅列出標(biāo)題  
     
    主站蜘蛛池模板: 免费大黄网站在线看| 宅男666在线永久免费观看| 亚洲一区二区三区影院| xxxxxx日本处大片免费看| 国产成人涩涩涩视频在线观看免费| 亚洲精品无码国产片| 毛片a级毛片免费观看品善网| 亚洲中文字幕在线无码一区二区| 99re6在线视频精品免费下载| 亚洲美女色在线欧洲美女| 精品福利一区二区三区免费视频| 67pao强力打造67194在线午夜亚洲| 日韩精品无码专区免费播放| 亚洲香蕉免费有线视频| 歪歪漫画在线观看官网免费阅读| 亚洲AV成人影视在线观看| 日韩精品无码人妻免费视频| 精品亚洲国产成人av| 国产a v无码专区亚洲av| 两个人看的www免费视频中文| 久久精品国产亚洲AV果冻传媒 | 男人的好看免费观看在线视频| 亚洲视频在线观看地址| 国产成人无码免费看视频软件| 亚洲a∨国产av综合av下载| 亚洲精品色婷婷在线影院| 成人A片产无码免费视频在线观看| 中文字幕亚洲免费无线观看日本| 特级做A爰片毛片免费69| 激情吃奶吻胸免费视频xxxx| 亚洲乱码中文字幕综合| 120秒男女动态视频免费| 亚洲а∨天堂久久精品9966| 久久久久亚洲AV成人网人人网站 | 久久久久久久久无码精品亚洲日韩| 四虎影视永久免费视频观看| 在线观看人成视频免费无遮挡| 亚洲白色白色永久观看| 成人永久免费高清| 国产亚洲免费的视频看| 亚洲中文字幕无码av|