ServerSocket與Socket類

ServerSocket與Socket類

TCP套接字協(xié)議:

TCP最主要的特征就是能夠建立長時間的連接鹿寨,而且能夠保證數(shù)據(jù)安全的送達惭适,但是速度比較慢瓢湃。使用TCP進行連接的時候會有三次握手,之后才建立起服務(wù)器與客戶端的連接剩彬,因為TCP的鏈接習慣是詢問對方機器是否存在盛末,不存在就不會建立連接弹惦,存在才會建立連接。

示意圖:

ServerSocket類:

在Java中想要使用TCP協(xié)議做編寫服務(wù)端的話悄但,需要使用到ServerSocke類棠隐,這個類是TCP協(xié)議的。

TCP協(xié)議的操作類都在java.net包下放著檐嚣,ServerSocket類就是服務(wù)器端助泽,服務(wù)器插座,Socket這個單詞就是插座的意思。

Socket類:

同樣是TCP協(xié)議并與ServerSocket類相對的是Socket類嗡贺,這個類是作為一個通訊端隐解、客戶端的存在。用于去連接服務(wù)器端诫睬,這個Socket如果是從ServerSocket拿到的對象厢漩,那就是與服務(wù)器連接的那個Socket,如果是自己創(chuàng)建的Socket對象岩臣,那你就是客戶端。

在理論上可以有無限個Socket端來連接ServerSocket端宵膨,在ServerSocket端上每有一個Socket端來連接架谎,就會創(chuàng)建與之相對的Socket對象。也就是說ServerSocket端上也有Socket對象辟躏,每一個Socket就像插座上的插孔一樣谷扣,連接著通訊端的Socket對象。

示意圖:

ServerSocket與Socket類:

ServerSocket類可以編寫服務(wù)器端捎琐,Socket類可以用來編寫客戶端会涎。創(chuàng)建ServerSocket對象的時候需要聲明一個端口號,這樣通訊端才能通過端口號去連接瑞凑。創(chuàng)建Socket對象的時候則需要聲明一個IP地址和ServerSocket對象的端口號末秃,這樣才能對服務(wù)端發(fā)出連接請求。在發(fā)出連接請求成功連接后籽御,Socket通訊端會創(chuàng)建兩個流练慕,一個是InputStream流一個是OutputStream流。同時技掏,ServerSocket服務(wù)器端會得到一個Socket對象铃将,然后這個Socket對象也會創(chuàng)建出InputStream流和OutputStream流想幻。

示意圖:

上面只是粗略的說一下如何建立的連接谆趾,實際上ServerSocket服務(wù)器端的Socket對象是通過accept();方法得到的累澡,這個方法監(jiān)聽著聲明的端口號片迅。一旦有通訊端來連接价认,就會創(chuàng)建Socket對象谦去,客戶端和服務(wù)器端建立連接成功之后就通過InputStream流和OutputStream流來進行交互數(shù)據(jù)囱修。

完整示意圖:

明白了兩個類之間的聯(lián)系后想诅,我們就開始嘗試編寫一個服務(wù)器端吧弧哎。我們使用瀏覽器作為Socket端雁比,因為瀏覽器也是TCP協(xié)議的,所以可以連接到我們編寫的服務(wù)器端撤嫩。(提示:如果確定編寫的代碼無誤偎捎,但是瀏覽器卻連接不到編寫的服務(wù)端,可以更換IE瀏覽器試一下)

代碼示例:

運行結(jié)果:

瀏覽器會發(fā)送一段瀏覽器的信息:

我們還可以使用字節(jié)流,讀取一些漂亮妹子照片的并通過網(wǎng)絡(luò)流輸出到瀏覽器上茴她,估計很多屌絲們就精神一震了(手動滑稽)寻拂。

代碼示例:

運行結(jié)果:

現(xiàn)在我們已經(jīng)知道如何編寫服務(wù)器端,并且知道可以使用瀏覽器作為客戶端去進行連接了丈牢,那么接下來使用Socket類進行編寫一個客戶端祭钉,簡單的與服務(wù)器端交互一下數(shù)據(jù)。服務(wù)器端的編寫和上面的第一個示例沒有區(qū)別己沛,就不過多解釋慌核。

客戶端則是需要聲明一個ip地址和端口號,這個端口號是服務(wù)器端的端口號申尼,這點要注意垮卓。然后同樣的通過流來交互數(shù)據(jù),讀取或輸出數(shù)據(jù)時师幕,需要看一下服務(wù)器端是先讀取還是先輸出粟按,服務(wù)器端先讀取的話客戶端就需要先編寫輸出數(shù)據(jù)的代碼,否則反之霹粥。關(guān)于這個誰先讀取或輸出是沒有規(guī)定的灭将,都是根據(jù)另一端的編寫的代碼來決定。

服務(wù)器端代碼示例:

客戶端代碼示例:

運行結(jié)果:

當有兩個結(jié)果并且想要兩個控制臺界面時后控,可以點擊這里庙曙,選擇NewConsoleView新建控制臺:

代碼之間的關(guān)系示意:

多網(wǎng)卡:

多網(wǎng)卡就是一臺計算機中有好幾個網(wǎng)卡,一般普通PC電腦有兩個網(wǎng)卡浩淘,一個物理網(wǎng)卡矾利,一個虛擬網(wǎng)卡。筆記本電腦則一般有三個網(wǎng)卡一個無線網(wǎng)卡馋袜,一個物理網(wǎng)卡男旗,一個虛擬網(wǎng)卡。

一般在服務(wù)器上有很多個網(wǎng)卡欣鳖,所以就有很多網(wǎng)線接口察皇,因為有些服務(wù)器會需要“三合一網(wǎng)絡(luò)”,“三合一網(wǎng)絡(luò)”就是將聯(lián)通泽台、電信什荣、移動的網(wǎng)線都接入到這臺服務(wù)器里,那這臺服務(wù)器就能同時使用三個運營商的網(wǎng)絡(luò)了怀酷。

而且因為服務(wù)器機房里一般都是有很多臺服務(wù)器在進行集群稻爬,所以也需要一部分網(wǎng)絡(luò)接口用于連接內(nèi)部的集群網(wǎng)絡(luò),一部分網(wǎng)絡(luò)接口則連接通過防火墻之類的安全措施過濾后的外部網(wǎng)絡(luò)蜕依。

多網(wǎng)卡服務(wù)器圖片:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桅锄,一起剝皮案震驚了整個濱河市琉雳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌友瘤,老刑警劉巖翠肘,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異辫秧,居然都是意外死亡束倍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門盟戏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绪妹,“玉大人,你說我怎么就攤上這事柿究∥辜保” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵笛求,是天一觀的道長。 經(jīng)常有香客問我糕簿,道長探入,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任懂诗,我火速辦了婚禮蜂嗽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘殃恒。我一直安慰自己植旧,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布离唐。 她就那樣靜靜地躺著病附,像睡著了一般。 火紅的嫁衣襯著肌膚如雪亥鬓。 梳的紋絲不亂的頭發(fā)上完沪,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音嵌戈,去河邊找鬼覆积。 笑死,一個胖子當著我的面吹牛熟呛,可吹牛的內(nèi)容都是我干的宽档。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼庵朝,長吁一口氣:“原來是場噩夢啊……” “哼吗冤!你這毒婦竟也來了又厉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤欣孤,失蹤者是張志新(化名)和其女友劉穎馋没,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體降传,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡篷朵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了婆排。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片声旺。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖段只,靈堂內(nèi)的尸體忽然破棺而出腮猖,到底是詐尸還是另有隱情,我是刑警寧澤赞枕,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布澈缺,位于F島的核電站,受9級特大地震影響炕婶,放射性物質(zhì)發(fā)生泄漏姐赡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一柠掂、第九天 我趴在偏房一處隱蔽的房頂上張望项滑。 院中可真熱鬧,春花似錦涯贞、人聲如沸枪狂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽州疾。三九已至,卻和暖如春皇拣,著一層夾襖步出監(jiān)牢的瞬間孝治,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工审磁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谈飒,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓态蒂,卻偏偏與公主長得像杭措,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子钾恢,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

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

  • 從三月份找實習到現(xiàn)在手素,面了一些公司鸳址,掛了不少,但最終還是拿到小米泉懦、百度稿黍、阿里、京東崩哩、新浪巡球、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,246評論 11 349
  • viewController.m文件的調(diào)用 person.h 文件 person.m文件
    FredYJH閱讀 745評論 0 0
  • 這個假期邓嘹,因媽媽小病初愈酣栈,回老家探望。 我想汹押,網(wǎng)絡(luò)有時是個好東西矿筝,竟然聯(lián)系上了二十年未見的小學同學。下午4個發(fā)小棚贾,...
    洋頭閱讀 381評論 2 2
  • 藝糖閱讀 362評論 0 0