看板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