記錄mini-task--代理郵件發收系統的開發過程(一)
2012年8月18日
今天,看著書突然萌生了一個idea,開發個mini-task玩玩,通過這樣實踐起來學習應該更快些,而且很有趣。初步決定做個簡單的代理郵件傳送系統(接收,放後面有時間再做)。版本一的需求就這樣:畫一個網頁,弄幾個框,分別有代理郵箱,代理郵箱密碼,郵件主題,正文,傳送按鈕組成。當自己輸入自己的代理郵箱以及密碼,然後填好郵件主題,寫好正文,點選傳送,則能夠正確傳送郵件。
可行性分析:自己用C寫過原始的socket,模擬SMTP協議,成功傳送過郵件。自己具備入門級的Web開發知識和Java基礎,可以動手嘗試。廢話少說,等看完李剛的瘋狂java講義,重點了解下Java網路程式設計,自己就來動手寫。
2012年8月19日
因為發郵件程式涉及到網路程式設計,原來只學過C網路程式設計,所以對Java網路程式設計也要學習下。通過部落格上陳躍峰的部落格:Java程式設計那些事兒103——網路程式設計技術2對Java網路程式設計有了個瞭解。下面的傳送和接收程式也是照搬過來的。
客戶端程式:
package fp;
import java.io.*;
import java.net.*;
/**
*
* 簡單的Socket客戶端
*
* 功能為:傳送字串“Hello”到伺服器端,並列印出伺服器端的反饋
*/
public class SimpleSocketClient {
public static void main(String[] args) {
Socket socket = null;
InputStream is = null;
OutputStream os = null;
// 伺服器端IP地址
String serverIP = "127.0.0.1";
// 伺服器端埠號
int port = 10000;
// 傳送內容
String data = "Hello";
try {
// 建立連線
socket = new Socket(serverIP, port);
// 傳送資料
os = socket.getOutputStream();
os.write(data.getBytes());
// 接收資料
is = socket.getInputStream();
byte[] b = new byte[1024];
int n = is.read(b);
// 輸出反饋資料
System.out.println("伺服器反饋:" + new String(b, 0, n));
} catch (Exception e) {
e.printStackTrace(); // 列印異常資訊
} finally {
try {
// 關閉流和連線
is.close();
os.close();
socket.close();
} catch (Exception e2) {
}
}
}
}
伺服器端程式:
package fp;
import java.io.*;
import java.net.*;
/**
*
* echo伺服器
*
* 功能:將客戶端傳送的內容反饋給客戶端
*/
public class SimpleSocketServer {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
OutputStream os = null;
InputStream is = null;
// 監聽埠號
int port = 10000;
try {
// 建立連線
serverSocket = new ServerSocket(port);
// 獲得連線
socket = serverSocket.accept();
// 接收客戶端傳送內容
is = socket.getInputStream();
byte[] b = new byte[1024];
int n = is.read(b);
// 輸出
System.out.println("客戶端傳送內容為:" + new String(b, 0, n));
// 向客戶端傳送反饋內容
os = socket.getOutputStream();
os.write(b, 0, n);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 關閉流和連線
os.close();
is.close();
socket.close();
serverSocket.close();
} catch (Exception e) {
}
}
}
}
這是對簡單的回顯程式,先執行服務程式,再執行客戶程式。客戶端傳送hello到服務端並被回顯。服務端控制檯顯示:客戶端傳送內容為:Hello 。在客戶端的控制檯顯示:伺服器反饋:Hello 。
後續參見部落格:記錄我的郵箱收發系統開發過程(二)
相關文章
- 記錄mini-task--代理郵件發收系統的開發過程(三)
- 記錄mini-task--代理郵件發收系統的開發過程(二)
- Oracle 發郵件過程Oracle
- 呼之欲出 WebMail 開發手記 (四) 郵件收發準備WebAI
- 郵件收發過程中STMP_POP_IMAP_MIME協議祥析協議
- 記錄開發過程一個路由問題路由
- 郵件開發:電子郵件的傳輸過程、各種協議的說明協議
- 郵件開發:複雜郵件的一個示例
- 海外郵件收發過程中出現的各種阻礙怎麼解決
- 記錄一個 Chrome 擴充套件的開發過程Chrome套件
- C#使用 MailKit 收發郵件C#AI
- 郵件開發:接收解析郵件
- FFmpeg開發筆記全目錄(FFmpeg開發實戰詳解,含直播系統的搭建過程)筆記
- 在FoxMail裡收發ZohoMail的郵件AI
- Flutter開發過程中遇到的問題記錄Flutter
- 使用 MailChimp 傳送郵件 + 調取 API 開發落地頁過程AIAPI
- 在Foxmail中收發Yahoo!郵件AI
- postfix郵件系統之郵件客戶端無法收郵件問題解析客戶端
- Linux下使用Perl來發信郵件過程Linux
- 實現簡單的郵件收發器(十二)
- CRM系統開發過程中的CRUD模板
- 透過python發郵件Python
- 郵件開發:DNS、JDNIDNS
- oracle中發郵件的儲存過程--功能比較強(摘)Oracle儲存過程
- 直播系統開發過程中的一些關鍵點
- 企業郵件系統的發展和變化
- linux下sendmail郵件系統安裝操作記錄LinuxAI
- Linux下開源郵件系統Postfix+Extmail+Extman環境部署記錄LinuxAI
- 記一次nodejs開發CLI的過程NodeJS
- xmake-vscode外掛開發過程記錄VSCode
- 郵件開發:傳送程式
- 發郵件的例子
- iphone 6s自帶郵箱收發郵件設定教程iPhone
- 射頻收發記錄儀
- 28、java檔案上傳下載、郵件收發Java
- 限制Exchange使用者從Internet收發郵件
- Flutter Notes| 記錄開發過程中常用命令Flutter
- 記錄從0開發一個vue的富文字外掛過程以及遇到的坑Vue