看板java
標 題Re: 一個問題
發信站政大資科貓空行館 (Fri Jun 18 09:09:46 2004)
轉信站ptt!ctu-reader!ctu-peer!news.nctu!news.cis.nctu!smallcatBBS
※ 引述《[email protected]》之銘言:
: 以TCP/IP 寫一個client 與server機場起降時間查詢網路程式
: 1.Server紀錄目前航空公司起降時間
: CI-008 18:35PM
: AR-237 19:02PM
: EC-0989 20:20PM
: 2.Client讀入使用者輸入
: 輸入C表示查詢所有CI起降時間
: 擗JA 磳頇d詢所有AR起降時間
: 擗JE磳頇d詢所有EC起降時間
要寫好這個作業應該會很難
你需要先看 orielly I/O 那一本書
先懂 java.io的封裝性, serializable
然後再看 orielly 的network programming和金禾的java網際網路程式設計
你就會懂network io, multi thread, thread synchronized
然後你應該學會一些技巧
如window跟linux的斷行不一樣會做成readline的問題 (/r/n, /n)
沒有synchronized會做成錯誤
各物件lock的順序沒有相同的拓撲順序有可能出現deadlock
network io作native必需要sleep, sleep跟RTT接近時效能可能會很好
都懂以後就可以開始設計server/client之間comment
例如指令一定只有一行的話, 你可以使用print(command + "\r\n");
於是你就會想到你看過java.io中有不錯的東西
如writeUTF8, object output stream等
而協定你可以參考file transport protocol(FTP), 這樣對你很有幫助
ftp協定有singal line comment, multi line comment
另外對socket有active mode 和 passive mode
協定定好了以後, 程式要用到的工具都略懂一二後
就開始寫出外殼, 以金禾那本書中的範例不錯
至少這樣你不會在一開始就寫爛程式 (network client一多程式就出現真面目)
然後client就可以套一個GUI上去, 不過GUI不太好寫
需要學一點pattern後才寫得比較順手
--
※ Origin: 貓空行館 ◆ From: english.nccu.edu.tw