12.5-全棧Java筆記:Java網(wǎng)絡(luò)編程(三)

上節(jié)回顧:在學(xué)習(xí)了Socket在建立客戶端和服務(wù)器單項(xiàng)通訊中,分別創(chuàng)建獨(dú)立的Socket,并通過(guò)Socket的屬性桅滋。

那么如何將兩個(gè)Socket進(jìn)行連接廓潜,從而達(dá)到客戶端和服務(wù)器之間建立輸入輸出流進(jìn)行通信呢?在上節(jié)中我們已經(jīng)講到唱捣,TCP/IP套接字是最可靠的雙向流協(xié)議,使用TCP/IP可以發(fā)送任意數(shù)量的數(shù)據(jù)。如果發(fā)送方和接收方計(jì)算機(jī)確定好端口髓废,他們就可以通信了,其中的端口用套接字表示该抒。

【示例1】客戶端與服務(wù)器端雙向交流的Socket之服務(wù)器端

import?java.io.BufferedReader;

import?java.io.BufferedWriter;

import?java.io.InputStreamReader;

import?java.io.OutputStreamWriter;

import?java.net.ServerSocket;

import?java.net.Socket;

public?class?Server {

????public?static?void?main(String[] args)?throws?? Exception {

???????ServerSocket server=new ServerSocket(8888);

??????? Socket socket=server.accept();

?????? BufferedReader in=new?BufferedReader(new?? InputStreamReader(socket.getInputStream()));

?????? BufferedWriter out=new?BufferedWriter(new?? OutputStreamWriter(socket.getOutputStream()));

?????? BufferedReader br =?new?BufferedReader(new?? InputStreamReader(System.in));

???????while(true){

?????????? String str=in.readLine();

?????????? System.out.println("客戶端說(shuō):"+str);

?????????? String str2 = "";

?????????? str2 = br.readLine();?? ??//讀到\n為止慌洪,因此一定要輸入換行符!

?????????? out.write(str2+"\n");

?????????? out.flush();

???????????if(str.equals("end"))

??????????????break;

?????????? }

?????? in.close();

?????? out.close();

?????? socket.close();

??? }

}

【示例2】客戶端與服務(wù)器端雙向交流的Socket之客戶端

import?java.io.BufferedReader;

import?java.io.BufferedWriter;

import?java.io.IOException;

import?java.io.InputStreamReader;

import?java.io.OutputStreamWriter;

import?java.net.InetAddress;

import?java.net.Socket;

import?java.net.UnknownHostException;

public?class?Client {

????static?Socket?server;

????public?static?void?main(String[] args) {

???????try?{

???????????server?=?new?Socket(InetAddress.getLocalHost(), ? 8888);

?????????? BufferedReader in =?new?BufferedReader(new?? InputStreamReader(

??????????????????server.getInputStream()));

?????????? BufferedWriter out =?new?BufferedWriter(new?? OutputStreamWriter(

??????????????????server.getOutputStream()));

?????????? BufferedReader wt =?new?BufferedReader(new?? InputStreamReader(

????????????????? System.in));

???????????while?(true) {

????????????? String str = wt.readLine();

????????????? out.write(str + "\n");

????????????? out.flush();

??????????????if?(str.equals("end")) {

??????????????????break;

????????????? }

????????????? System.out.println("服務(wù)器發(fā)說(shuō):" + ? in.readLine());

?????????? }

?????????? out.close();

?????????? in.close();

?????????? wt.close();

???????????server.close();

?????? }?catch?(UnknownHostException e) {

?????????? //?TODO?Auto-generated catch block

?????????? e.printStackTrace();

?????? }?catch?(IOException e) {

?????????? //?TODO?Auto-generated catch block

?????????? e.printStackTrace();

?????? }

??? }

}

學(xué)習(xí)以上程序后凑保,會(huì)發(fā)現(xiàn)我們必須按照安排好的順序冈爹,服務(wù)器和客戶端一問(wèn)一答!不夠靈活E芬频伤!那么如何用多線程來(lái)實(shí)現(xiàn)更加靈活的雙向通訊呢?下節(jié)我們繼續(xù)~





「全棧Java筆記」是一部能幫大家從零到一成長(zhǎng)為全棧Java工程師系列筆記芝此。筆者江湖人稱 Mr. G憋肖,10年Java研發(fā)經(jīng)驗(yàn),曾在神州數(shù)碼婚苹、航天院某所研發(fā)中心從事軟件設(shè)計(jì)及研發(fā)工作岸更,從小白逐漸做到工程師、高級(jí)工程師膊升、架構(gòu)師怎炊。精通Java平臺(tái)軟件開發(fā),精通JAVAEE廓译,熟悉各種流行開發(fā)框架评肆。


?筆記包含從淺入深的六大部分:

?A-Java入門階段

?B-數(shù)據(jù)庫(kù)從入門到精通

?C-手刃移動(dòng)前端和Web前端

?D-J2EE從了解到實(shí)戰(zhàn)

?E-Java高級(jí)框架精解

?F-Linux和Hadoop?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市非区,隨后出現(xiàn)的幾起案子瓜挽,更是在濱河造成了極大的恐慌,老刑警劉巖院仿,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秸抚,死亡現(xiàn)場(chǎng)離奇詭異速和,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)剥汤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門颠放,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人吭敢,你說(shuō)我怎么就攤上這事碰凶。” “怎么了鹿驼?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵欲低,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我畜晰,道長(zhǎng)砾莱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任凄鼻,我火速辦了婚禮腊瑟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘块蚌。我一直安慰自己闰非,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布峭范。 她就那樣靜靜地躺著财松,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纱控。 梳的紋絲不亂的頭發(fā)上辆毡,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音甜害,去河邊找鬼胚迫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛唾那,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褪尝,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼闹获,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了河哑?” 一聲冷哼從身側(cè)響起避诽,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎璃谨,沒(méi)想到半個(gè)月后沙庐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲤妥,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年棉安,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铸抑。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贡耽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出至耻,到底是詐尸還是另有隱情若皱,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布有梆,位于F島的核電站是尖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏泥耀。R本人自食惡果不足惜饺汹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望痰催。 院中可真熱鬧兜辞,春花似錦、人聲如沸夸溶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缝裁。三九已至扫皱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捷绑,已是汗流浹背韩脑。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粹污,地道東北人段多。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像壮吩,于是被迫代替她去往敵國(guó)和親进苍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子加缘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

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