java 板


LINE

※ 引述《slalala (no car ,no girlfriend )》之铭言: : sktReader = new BufferedReader(new InputStreamReader(skt.getInputStream())); : String message; : StringBuffer sb = new StringBuffer(); : while((message = sktReader.readLine()) != null) { : sb.append(message); : } : //读完了 可是没办法到这边 DEBUG时 确定卡在回圈 : System.out.println("到这边阿 打我阿笨蛋!"); : 请问这是什麽回事? 之前写text file 读写都没碰过这样的问题 : 刚刚尝试用read的方式 读出字元 : 也是一样 无法判断 读出来的int是否为-1 : 是不是socket有一些特性我没厘清qq? : 烦请板上的高手教化我一下orz 遇到问题「为什麽没有 null 或 -1 出现」, 您该在 google 之前先查手册, http://java.sun.com/j2se/1.4.2/docs/api/java/io/ BufferedReader.html#readLine%28%29 <% Returns: A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached %> http://java.sun.com/j2se/1.4.2/docs/api/java/io/ Reader.html#read%28char[],%20int,%20int%29 <% Returns: The number of characters read, or -1 if the end of the stream has been reached %> 手册说明了, null 或 -1 出现的条件。 另外,您提到良葛格档案读写的范例, 我试着找一下: http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/ BufferedReaderWriter.htm 他有提到: <% 下次这个程式示范了BufferedReader与BufferedWriter的使用, 您可以在文字模式下输入字元,程式会将您输入的文字储存至指 定的档案中,如果要结束程式,null的判断则依平台而有所不同 ,在UNIX-Like平台下,使用Ctrl+d 字元作为读取结束或档案结 束,在 Windows之下,则是在使用者按下Enter键後,接着Ctrl+ z表示读取结束或档案结束 %> 因为范例使用的是 System.in 作为输入来源, 它不是一般的档案,不会读完後遇上档案结束的符号。 因此,您需要自己制造这样的符号。 到目前为止,至少能规纳一些注意到的事: 1. 没有遇到串流的终点,所以不会有 null 或 -1 出现 2. 能否自己制造串流的终点呢? 事实上,当 client 结束连线的时候,您会遇到 null http://pastie.org/689598 (test sample) 所以,您可以透过在 client 端呼叫 close() 来产生 null。 大致探索完满足 end of stream 的情况後, 您得回到您正在处理的问题: 1. 目前的方式满足你的需要:client 应该要主动关闭。 2. 目前的方式不符您的需要:client 不应该主动关闭。 您的需要为 1. 时,那麽 client.close() 就完成了。 您的需要为 2. 时,那麽您就不该以下列式子做为终止条件: ((message = sktReader.readLine()) != null) 您应该由 client 送来的内容作为判断, 可以参考前一篇版友回应的: http://stackoverflow.com/questions/1577719/ java-sockets-bufferedreader-and-readline-hang http://tinyurl.com/yckcfqu 文中之到,以 Http Client 为例, 您可以在 Request Header 加上 Connection: close。 要求 Server 端处理完毕後结束连线。 虽然您的情况是相反的(您写Server),但方式是一致的 「约定一个作为处理结束的符号」 ========================================================= 今天怎麽突然多话了起来呢? 上一篇 Let Me Google For You 虽然有答案, 但是,弟觉得在 Google 找解答前, 我们有该先读阅的手册,亦有该先自我思考、归纳的材料 顺便分享一下文章: 对自己好一些:谈技术手册阅读 http://blog.linux.org.tw/~jserv/archives/002008.html --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.165.131
1F:推 AmosYang:期待 LMRTFMFY.com 的出现… XD 11/09 16:59
2F:推 godfat:我又笑了 XDDDD 是不是还要有 LMWTFCFY.com 11/09 17:12
3F:→ AmosYang:(叉题) 事实上 LMWTFCFY.com / LMDTFCFY.com 或许还蛮有 11/09 17:48
4F:→ AmosYang:(搞笑)潜力的; LMRTFMFY.com 在技术上一下想不到该怎麽作 11/09 17:50
5F:→ godfat:比方说把传进去的文字用语音读出来...XD 不知 D 是哪个字? 11/09 17:55
6F:推 slalala:非常感谢 这篇对我受益良多 11/09 18:44
7F:推 slalala:事实上我今天早上的解法也是约定一个终止符号ORZ 11/09 18:49
8F:→ AmosYang: 'D'ebug XD 11/10 00:32
9F:→ godfat:看来是我太久没在板上debug了...XD一时只想到draw, display 11/10 00:56







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灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP