Java實(shí)現(xiàn)Socket網(wǎng)絡(luò)編程(三)

在看到本文之前碘橘,如果讀者沒看過筆者的前文Java實(shí)現(xiàn)Socket網(wǎng)絡(luò)編程(二) ,請先翻閱吱肌。

下面痘拆,我們來實(shí)現(xiàn)服務(wù)器接收子線程:

       // 信息接收流
       BufferedReader brIn = null;
       // 使用"GBK"編碼讀取中文
       brIn = new BufferedReader(new InputStreamReader(
            mSocket.getInputStream(), "GBK"));
       for (int c = brIn.read(); c != -1; c = brIn.read()) {
            ServerMain.jtaReceivedMessage.append((char) c + "");
            // 滾動(dòng)到底端
            ServerMain.jtaReceivedMessage
                            .setCaretPosition(ServerMain.jtaReceivedMessage
                                    .getText().length());               
       }

Java輸入輸出,要采用流的方式氮墨,即InputStream和OutputStream纺蛆,筆者采用了”GBK“編碼讀取中文,當(dāng)然也可以采用”UTF-8“編碼规揪,在讀取信息過程中桥氏,邊讀取邊把內(nèi)容添加到可視區(qū)域(服務(wù)器接收框),并使接收框自動(dòng)滾動(dòng)猛铅,滑動(dòng)到最新的數(shù)據(jù)顯示位置字支。

值得注意的是,這個(gè)for循環(huán)是一個(gè)死循環(huán),除非發(fā)生讀寫錯(cuò)誤被捕獲到(Catch IOException)堕伪,否則循環(huán)不能結(jié)束揖庄。因此,不能把”接收到的信息添加到可視區(qū)域“這個(gè)步驟放置到for循環(huán)外欠雌,否則會(huì)導(dǎo)致”怎么讀取不到數(shù)據(jù)“這樣的問題而開發(fā)者又無法察覺蹄梢。如果要控制顯示格式,也要在for循環(huán)內(nèi)進(jìn)行或?qū)邮諗?shù)據(jù)本身進(jìn)行處理富俄。

接下來禁炒,我們實(shí)現(xiàn)服務(wù)器向客戶端”say hello“

       OutputStreamWriter outstream = null;
       // 將信息發(fā)送給客戶端
       try {
                outstream = new OutputStreamWriter(
                clientSocket.getOutputStream(), "GBK");
                outstream.write(message);
                outstream.flush();
       } catch (IOException e1) {
                if (outstream != null)
                    outstream.close();
                e1.printStackTrace();
         }

在讀寫過程中,要采用相同的編碼霍比,這里筆者同樣采用”GBK“幕袱。使用OutputStream的flush()方法,這是為了避免使用緩沖區(qū)時(shí)悠瞬,當(dāng)輸出的數(shù)據(jù)大小小于緩沖區(qū)大小時(shí)们豌,系統(tǒng)不會(huì)進(jìn)行”等緩沖區(qū)滿再發(fā)送數(shù)據(jù)“的操作,而是直接把緩沖區(qū)的數(shù)據(jù)發(fā)送出去阁危,避免客戶端有”數(shù)據(jù)接收延時(shí)“的感覺。

在實(shí)現(xiàn)完服務(wù)器后汰瘫,客戶端也同樣要建立接收信息的線程狂打,并向服務(wù)器”say hello!“混弥,由于代碼類似趴乡,此處筆者為了節(jié)省篇幅,就不粘貼代碼蝗拿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晾捏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子哀托,更是在濱河造成了極大的恐慌惦辛,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仓手,死亡現(xiàn)場離奇詭異胖齐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)嗽冒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門呀伙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人添坊,你說我怎么就攤上這事剿另。” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵雨女,是天一觀的道長谚攒。 經(jīng)常有香客問我,道長戚篙,這世上最難降的妖魔是什么五鲫? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮岔擂,結(jié)果婚禮上位喂,老公的妹妹穿的比我還像新娘。我一直安慰自己乱灵,他們只是感情好塑崖,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著痛倚,像睡著了一般规婆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蝉稳,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天抒蚜,我揣著相機(jī)與錄音,去河邊找鬼耘戚。 笑死嗡髓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的收津。 我是一名探鬼主播饿这,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撞秋!你這毒婦竟也來了长捧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤吻贿,失蹤者是張志新(化名)和其女友劉穎串结,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舅列,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奉芦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剧蹂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片声功。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宠叼,靈堂內(nèi)的尸體忽然破棺而出先巴,到底是詐尸還是另有隱情其爵,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布伸蚯,位于F島的核電站摩渺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏剂邮。R本人自食惡果不足惜摇幻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挥萌。 院中可真熱鬧绰姻,春花似錦、人聲如沸引瀑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽憨栽。三九已至帜矾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屑柔,已是汗流浹背屡萤。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掸宛,地道東北人死陆。 一個(gè)月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像旁涤,于是被迫代替她去往敵國和親翔曲。 傳聞我的和親對象是個(gè)殘疾皇子迫像,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 計(jì)算機(jī)網(wǎng)絡(luò)概述 網(wǎng)絡(luò)編程的實(shí)質(zhì)就是兩個(gè)(或多個(gè))設(shè)備(例如計(jì)算機(jī))之間的數(shù)據(jù)傳輸劈愚。 按照計(jì)算機(jī)網(wǎng)絡(luò)的定義,通過一定...
    蛋炒飯_By閱讀 1,231評論 0 10
  • 一闻妓、基礎(chǔ)知識(shí):1菌羽、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,388評論 0 4
  • 年初喜迎捷報(bào)由缆,在與瑞昌亞東激烈競爭搶奪中成功開發(fā)武寧縣大洞鄉(xiāng)敬老院新建項(xiàng)目注祖,并得到該項(xiàng)目獨(dú)供權(quán)。
    民用黃石片區(qū)羅文閱讀 270評論 0 0
  • 滿屋子油漆味均唉、甲醛味是晨,所有窗戶盡可能開著,油漆甲醛味似乎淡了些舔箭,一陣風(fēng)吹來罩缴,含著油漆甲醛味蚊逢,臨窗而坐,似乎放心點(diǎn)箫章、...
    春暖花開時(shí)讀書閱讀 139評論 0 0
  • 人的一生會(huì)經(jīng)歷很多的轉(zhuǎn)折烙荷、挫折,有失意仿徨檬寂、困難挫敗终抽,也會(huì)有大悲大喜、大起大落桶至。我們常常會(huì)在經(jīng)歷生死離別后忽然參透...
    椰子尼閱讀 384評論 0 0