網絡協議是網絡編程核心概念。對初學者無需深研 TCP/IP 協議族,重點在應用層邏輯數據格式約定。
簡單說,就是客戶端與服務端對傳輸數據格式的約定。如春晚小品《不差錢》中趙本山點菜、小沈陽判斷價格高則說「沒有」——這就是雙方達成的協議約定。網絡協議本質相同,只是以數字代表內容顯得較抽象。
客戶端輸入兩數一運算符,服務端計算回饋結果。需約定兩種格式:
直觀想法:字符串 "12+432",但服務端解析麻煩。更佳格式:
用逗號分隔,服務端 split 即可。進一步約定運算符編碼:0=+、1=-、2=*、3=/,則 "12,432,0" 即為一條完整協議數據。
服務端回饋格式:主要回饋結果,但需處理格式錯誤。約定:格式正確回饋結果,錯誤回饋 "錯誤"。例:
遵循「簡單、通用、易解析」原則。複雜程序(如 QQ)需設計登錄、註冊、發送消息等多種命令格式,逐一約定即可。
客戶端:生成發送協議格式、解析服務端回饋格式。
服務端:生成回饋協議格式、解析客戶端發送格式。
開發流程:先按邏輯設計協議格式 → 嚴格按約定編寫生成/解析代碼 → 用網絡 API 實現傳輸。
因協議格式各異,不同程序客戶端不可通用。常見標準協議(HTTP、FTP、SMTP)有通用規範,可查閱 RFC 文檔。
警示:協議格式是網絡程序核心機密,洩漏將導致任意客戶端接入,影響服務端安全。
本節介紹網絡編程基礎、Java 支持、編程步驟、TCP/UDP 實現細節。協議設計是核心,實際編程前必須完成良好協議設計。