java 板


LINE

※ 引述《love2010 (阿霍)》之铭言: : http://imageshack.us/photo/my-images/838/dsc01362qp.jpg
: 问了一些朋友他们都只知道大概 : 可是问他们每一行是甚麽意思又讲不出来...囧 : 可以帮我注解每一行的功能吗 谢谢 ORZ : PS 我看得懂的大概只有一半而已,但是又不确定是对还错 : 所以还是可以的话麻烦整个注解..-3- : 感恩!! 看程式码说故事的时间到了 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.Socket; public class TCPClient { public static void main(String[] args) throws Exception{ //宣告一个存放使用者输入的字串 String sentence; //从伺服端传回来的字串 String modifiedSentence; /* * I/O Stream * 你可以把网路传输看成输入跟输出, * 当网路传资讯过来, * 对你而言可以想成有东西要进来了, * 因此是输入, * 而你要传送东西出去,因此是输出, * * 串流你可以想像一条传输带, * 必须用传输带规定的箱子来传输, * 跟接收端说,我有东西要给你, * 传输带拉起来(socket开启), * 接收端回应没问题,就建立好连线了! * 然後在跟接收端说, * 我的货品包装好了,你要收好喔! * 接着接收端就说OK,就开始接收了! * 接收完了,就跟传送端说:都收到了! * 传送端就会把传输带收起来。 * * 各种串流 * 至於接收端收到资料的时候, * 就会用各种工具把货品打开来, * 然後将里面的东西加工好了, * 再用规定的箱子包好, * 又重复上面那些步骤, * 再一次建立连线,传送,关闭。 * * 缓冲 * 有时候为了加速传送, * 接收端可能有很多事情要忙, * 但是每次传送端都会送一个东西过来, * 接收端就必须去签收, * 很没有效率,因此会开一个仓库, * 跟传送端说,你把这个仓库装满以後, * 我再来签收,如此一来, * 我只需要等仓库装满,再来收就好了, * 那其他时间我可以处理其他的事情,提高效率。 * * 压缩 * 有时候一个箱子其实装的物品没有那麽多, * 还留有很多空间, * 那麽我们就会想说, * 一次传一个箱子过去只装一个东西, * 有点浪费, * 因此就会想要把一个箱子里面剩余的空间都装满, * 这样一次就可以传很多个物品过去, * 提高了效率。 * * */ BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in)); /* socket * 如果我们要把一些资料传到网路的另外一端, * 我们会将资料包装成封包,称做Datagram, * 每一个封包容量有限, * 其中结构分为标头(header)跟资料(payload) * 通常一段资料会切成很多个封包, * 接收到的资料不一定要照顺序, * 而接收的那端必须有能力可以把这些封包, * 根据资讯来排列它的顺序, * 有时候也会漏掉几个封包没接收到, * 这时候会要求再重送一次, * 这些过程是很复杂的, * 因此socket都帮你包好了, * 你不用自己去处理这些过程。 * socket可以看成两端的一个连线, * 你只需要告知要连线的host以及port */ Socket clientSocket = new Socket("hostname", 6789); /* 传送资料 * getOutputStream() * 这个方法会传回一个OutputStream, * 让你的程式能够用来写出资料到socket的另一端, * 在使用此串流之前, * 通常会将它串接到其他比较方便的串流, * 像是DataOutputStream或OutputStreamWriter, * 有时候考虑到效能,我们也会把它串接到缓冲串流。 */ DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream()); /* 接收资料 * getInputStream()方法 * 会回传一个能从Socket读入资料的输入串流, * 你通常可以把这个InputStream,串接到一个滤器串流或reader, * 例如DataInputStream或InputStreamReader, * 以便在读入资料之前, * 将资料转换成适合程式处理的形式,此外, * 如果把输入串流接到BufferedInputStream * 或BufferedReader之类的缓冲器, * 将可大幅提升效能。 */ BufferedReader inFromServer = new BufferedReader( new InputStreamReader( clientSocket.getInputStream())); //从串流中读取使用者输入的字串 sentence = inFromUser.readLine(); //从串流中传送使用者字串到伺服端 outToServer.writeBytes(sentence + "\n"); //从伺服端接收回传的字串 modifiedSentence = inFromServer.readLine(); //从伺服器传回来的字串显示出来 System.out.println("FROM Server:" + modifiedSentence); //关闭了连线 clientSocket.close(); } } 观念有错请指教 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.221.115.4
1F:推 love2010:谢谢大大!! 06/13 10:34
2F:推 belion:好人!且好强! 06/13 11:41
3F:推 lf21201:用语很简单:) 推 06/14 11:27
※ 编辑: givemepass 来自: 219.84.185.213 (06/14 22:20)
4F:推 benjumin:推一个 06/15 22:08
5F:推 n823n823:感谢~! 06/20 22:17







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP