国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

編寫可在線收發E-mail的Java Applet(1)

2019-11-18 13:58:37
字體:
來源:轉載
供稿:網友

  說起java,有些人可能會想到一些用于修飾主頁的Applet,例如聞名的水光倒影Lake.class等。其實這些Applet只是Java應用的很小一個方面。作為一種新興的網絡語言,Java用于編寫基于TCP/ip的應用才算用到了點子上。在編寫TCP/IP的應用方面,Java是我所用過的編程語言中最簡潔、最快速的。本文將討論如何用Java來編寫可根據SMTP和POP3協議來收發E-mail的Java Applet。 一.Java網絡編程初步1.建立TCP/IP連接Socket類中的構造函數Socket(String host,int port)用于創建一個Socket,并與指定的主機(host)及端口(port)連接。由于受到Java Applet安全機制的限制,主機名不可以任意指定,而應和被調用的Applet所在主機的名字相同。因此,可先由GetCodeBase方法取得瀏覽器當前讀取的CLASS文件所在的URL,再通過GetHost方法從該URL返回用字符串表示的該主機的名稱。例如從http://person.zj.cninfo.net/~caveman/這個URL中可以返回用字符串表示的主機名"person.zj.cninfo.net"。 關于標準端口地址的值一般是:SMTP為25、POP3為110、FTP為21等,當然也有的主機用的是非標準的端口,在使用之前最好先確定一下。 2.數據的發送與接收 使用Socket類中的GetOutputStream方法可以取得與當前Socket對應的輸出數據流,用DataOutputStream類中的WriteBytes方法可以逐個字符地將數據寫入到輸出數據流中。 使用Socket類中的GetInputStream方法可以取得與當前Socket對應的輸入數據流,用DataInputStream類中的ReadLine方法可以逐行地讀取輸入數據流中的數據。 3.關閉TCP/IP連接 可以用Socket類中的close方法來關閉TCP/IP連接。 二.基于SMTP協議發送E-mail的Java Applet 1.SMTP協議和服務器 SMTP(Simple Mail Transfer PRotocol)協議是目前網上流行的發送E-mail的協議,SMTP協議共有14條命令。不過,發一封E-mail只需用如下5條命令就足夠了(見表1)。 表1 命 令 功 能 HELO 與SMTP服務器握手,傳送本機域名 MAIL FROM: 傳送發信者的信箱名稱 RCPT TO: 傳送接收者的信箱名稱 DATA 發送信件數據(包括信頭和信體) QU99v 退出與SMTP服務器的連接 除了ISP提供的SMTP服務器以外,國內一些存放免費個人主頁的服務器的SMTP端口也是打開的,假如該服務器對外來的E-mail沒有增加RELAY限制(例如網易nease.net就有此限制),那么也可以把它當作SMTP服務器來用。如Person.zj.cninfo.net等,在這些服務器上放一個下面要編的Java Applet和調用它的htm文件,用戶就可以實現在線發送E-mail了。 2.SMTPtester.java中的主要程序 該Java Applet用了三個文本條(TextField)部件tf1、tf2和tf3,它們分別用來供用戶輸入發信者的信箱名稱、接收者的信箱名稱和信件的標題;還用了兩個文本區(TextArea)部件ta1和ta2,ta1供用戶輸入信體內容,ta2用來顯示Smtp服務器的應答信息和出錯信息等;當然還用了一個按鈕(Button)部件bu1,用戶輸入正確的信息后,用鼠標點擊一下它,信件就可以被發出去了。 事件捕捉處理程序見程序1: public boolean handleEvent(Event event1) { if ((event1.target != bu1) (event1.id != 1001)) /*假如不是按鈕bu1被鼠標按下*/ { return false; } if (!((tf1.getText().length() == 0) (tf2.getText().length() == 0))) /*假如發信者和收信人的信箱名稱都填好了,執行發信程序Bu1run*/ { bu1.disable(); bu1run(); return true; } ta2.appendText("Please give me enough information to send your email!/n");

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊金霍洛旗| 晋城| 利川市| 仁布县| 东乡族自治县| 开化县| 五寨县| 宜宾县| 邢台县| 屏边| 肃宁县| 龙口市| 钟祥市| 湖南省| 丹巴县| 高要市| 宁国市| 五大连池市| 莱芜市| 尚义县| 临桂县| 台州市| 正阳县| 丰宁| 宣恩县| 新津县| 都匀市| 井陉县| 夏津县| 延吉市| 措美县| 江孜县| 丹江口市| 醴陵市| 大安市| 华宁县| 大厂| 东辽县| 内黄县| 年辖:市辖区| 盐源县|