九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
通信掃盲

如果服務(wù)器軟件(比如網(wǎng)站)是基于WEB服務(wù)器(tomcat, jboss, weblogic)進(jìn)行開(kāi)發(fā), 那么客戶端請(qǐng)求服務(wù)器時(shí)遵照HTTP協(xié)議,請(qǐng)求的地址通常為 http:// ip地址:8080/工程名/文件名,通過(guò)這個(gè)地址就可以找到服務(wù)器上的文件,服務(wù)器自動(dòng)把文件里的內(nèi)容讀取,進(jìn)行處理后,將數(shù)據(jù)發(fā)送給客戶端。數(shù)據(jù)是有多種形式的,比如html,  xml, json, 以及其他形式, 客戶端收到數(shù)據(jù)后,根據(jù)數(shù)據(jù)的形式進(jìn)行解析,取得想要的具體內(nèi)容,然后以界面的形式將數(shù)據(jù)呈現(xiàn)出來(lái)給用戶看。



b / s模式

如果客戶端接收數(shù)據(jù)以及處理和展示,完全是由我們操作系統(tǒng)自帶的瀏覽器負(fù)責(zé),客戶端就不需要其他軟件了,這就叫b / s模式(瀏覽器/服務(wù)器模式)。如果基于這種模式,軟件開(kāi)發(fā)人員只需要開(kāi)發(fā)服務(wù)器軟件就行了,不用操心客戶端軟件的事。這種方式顯然具有巨大優(yōu)勢(shì),節(jié)省了開(kāi)發(fā)客戶端的成本。 舉例說(shuō), 就是我們平時(shí)上新浪網(wǎng)看新聞,我們打開(kāi)瀏覽器就是啟動(dòng)了客戶端軟件,我們是通過(guò)瀏覽器請(qǐng)求新浪的服務(wù)器的網(wǎng)頁(yè),新浪服務(wù)器將網(wǎng)頁(yè)數(shù)據(jù)處理成html形式,發(fā)送給客戶端瀏覽器,瀏覽器可以識(shí)別html語(yǔ)言,處理html后將以頁(yè)面的形式展示給你。


由此可見(jiàn),其實(shí)b/s模式的本質(zhì)還是c/s模式,只不過(guò)客戶端軟件被系統(tǒng)自帶的瀏覽器代替而已。

 b/s 模式雖然稱霸互聯(lián)網(wǎng),但在手機(jī)互聯(lián)網(wǎng)卻不是很好使。原因有三:

1,用手機(jī)瀏覽器上網(wǎng)看網(wǎng)頁(yè)的話,通常數(shù)據(jù)傳輸量比較大,導(dǎo)致速度比較慢,且流量費(fèi)較高。如果是自己寫客戶端軟件,數(shù)據(jù)組織可以比較精簡(jiǎn),提高了通信的速度。

2,通過(guò)瀏覽器看網(wǎng)頁(yè)在手機(jī)上通常操作起來(lái)不是很方便,且界面單調(diào),用戶體驗(yàn)不夠。如果自己寫客戶端軟件,界面想怎么設(shè)計(jì)就怎么設(shè)計(jì),可以充分發(fā)揮美觀,用戶操作友好性,以及絢麗的特效體驗(yàn)。

3,b/s模式針對(duì)手機(jī)網(wǎng)游、手機(jī)股票等數(shù)據(jù)傳輸速度要求很高的軟件,是不現(xiàn)實(shí)的,因?yàn)?span id="c9ozetgccsir" class="s2">b/s模式的通信協(xié)議是http協(xié)議,http協(xié)議規(guī)定了客戶端從服務(wù)器那里請(qǐng)求到數(shù)據(jù)后連接斷開(kāi),下次請(qǐng)求又要重新連接(連接后斷開(kāi)本意是為了節(jié)省服務(wù)器資源),但這將造成通信緩慢,用戶體驗(yàn)嚴(yán)重下降。 所以這類軟件通常要寫客戶端軟件完成。


c/s 模式

 如果客戶端不是瀏覽器,而是我們自己開(kāi)發(fā)的客戶端軟件來(lái)處理接受自服務(wù)器的數(shù)據(jù)(就是我們要做的iphone軟件),然后以某種UI形式將數(shù)據(jù)處理結(jié)果展示處理,那就叫c/s 模式(客戶端/服務(wù)器模式)。 現(xiàn)在的手機(jī),比拼的就是手機(jī)上的軟件,如果全都用瀏覽器處理一切功能,那么手機(jī)也就不需要再發(fā)展什么了,比誰(shuí)的屏幕大屏幕亮就行了。



通信協(xié)議

所謂協(xié)議,并不是某種技術(shù),而是一種規(guī)范,規(guī)范是可以寫在紙上的,我們稱之為白皮書(shū)。

那么大家按照白皮書(shū)上的說(shuō)明來(lái)做軟件,流行起來(lái)后,自然就通用了,之后的人開(kāi)發(fā)軟件,為了可以和別人已經(jīng)寫好的軟件進(jìn)行通信,只好也按照這個(gè)協(xié)議來(lái)做。就象說(shuō)英語(yǔ)的人最廣泛,就把英語(yǔ)定為國(guó)際語(yǔ)言一樣,你誓死不學(xué)英語(yǔ),那就聽(tīng)不懂洋話。


你完全可以自己規(guī)定一套協(xié)----就是你跟你的服務(wù)器的通信方式,比如你不想用http協(xié)議。 但問(wèn)題是,如果你的服務(wù)器軟件已經(jīng)是借助于tomcat這樣的web服務(wù)器開(kāi)發(fā)好了(比如說(shuō)一個(gè)網(wǎng)站) tomcat本身就是遵照http協(xié)議的,那么你如果客戶端不用http協(xié)議,你根本就無(wú)法跟服務(wù)器軟件通信。在b/s已經(jīng)流行了10多年的今天, 會(huì)做網(wǎng)站的比賣菜的還多,大家都是借助于web服務(wù)器來(lái)做服務(wù)器軟件(其實(shí)是沒(méi)多少人能自己寫服務(wù)器軟件的,要知道能寫出完美的服務(wù)器軟件是很困難的,相當(dāng)于你自己寫一個(gè)tomcat,那可是很多高手一起的杰作,那么既然別人都已經(jīng)寫好了,而且還不要錢,那為什么不用呢?所以大家都用了。除非你要做基于socket通信的服務(wù)器,那就只好專門寫了服務(wù)器了,跟定做一樣), 所以咱做iphone客戶端軟件大部分情況下是遵從http協(xié)議的,就是因?yàn)榉?wù)器大都是基于web服務(wù)器進(jìn)行開(kāi)發(fā)得,這樣得服務(wù)器開(kāi)發(fā)成本比較低。 在遵從http協(xié)議的前提下,具體的數(shù)據(jù)組織形式,比如你是用xml格式, json格式, 或者自定義格式,你可以自己定,但你起碼要讓服務(wù)器知道你的數(shù)據(jù)組織形式,不然服務(wù)器即使是按照協(xié)議能收到數(shù)據(jù),也不知道如何解析數(shù)據(jù)。


實(shí)際項(xiàng)目開(kāi)發(fā)中得通信協(xié)議?

在已經(jīng)確定了http通信這種大戰(zhàn)略后。 在實(shí)際項(xiàng)目中再說(shuō)通信協(xié)議那就是具體得通信接口了, 說(shuō)白了就是客戶端和服務(wù)器指定一套具體得通信流程。 比如客戶端要發(fā)數(shù)據(jù)得話,發(fā)送得具體地址是什么(注意地址可能變化得), 發(fā)送得具體格式是什么等等,服務(wù)器接受到數(shù)據(jù)后返回什么信息,信息得格式是什么云云。



為什么還要學(xué)習(xí)其他公共協(xié)議?

一,ftp協(xié)議

如果你想上傳一個(gè)文件到服務(wù)器,本來(lái)也是可以通過(guò)http協(xié)議把文件的數(shù)據(jù)發(fā)送給服務(wù)器的, 但是服務(wù)器已經(jīng)配置好了一個(gè)的ftp服務(wù)器專門用來(lái)接受所有客戶端的上傳的文件,并要求客戶端必須上傳文件到ftp服務(wù)器,那么咱客戶端就要遵照ftp協(xié)議寫代碼,否則無(wú)法跟ftp服務(wù)器進(jìn)行通信。

ftp協(xié)議通常是使用處理大文件的上傳和下載的,如果是小文件,就可以隨意一些,殺雞不必用牛刀。


二, p2p協(xié)議

p2p之前,先要了解一些基礎(chǔ)知識(shí)。


1 網(wǎng)吧里的網(wǎng)絡(luò)布局: 這是現(xiàn)在普遍的網(wǎng)絡(luò)布局方式,所有的電腦都連到一個(gè)集線器上,所有網(wǎng)線采用平行線即可(雙絞線的一種),設(shè)定一臺(tái)代理服務(wù)器,代理服務(wù)器連接電信或網(wǎng)通。 代理服務(wù)器啟動(dòng)后,會(huì)獲得一個(gè)真實(shí)的ip地址(公網(wǎng)ip),于是代理服務(wù)器能上網(wǎng), 而其他的所有電腦都是通過(guò)集線器連到代理服務(wù)器上,是通過(guò)代理服務(wù)器上網(wǎng)的,所以其他電腦的ip都是局域網(wǎng)ip,比如192.168.x,x ,  并非真實(shí)ip地址。

局域網(wǎng)之內(nèi)的電腦,可以通過(guò)局域網(wǎng)ip就能互相找到,并不是要靠代理服務(wù)器幫忙,代理服務(wù)器僅僅是讓所有電腦都可以上因特網(wǎng)的。但是因特網(wǎng)上的某臺(tái)電腦只能通過(guò)真實(shí)ip地址(公網(wǎng)ip)找到代理服務(wù)器,并不能直接找到局域網(wǎng)內(nèi)的其他電腦。 如果你是一個(gè)網(wǎng)絡(luò)攻擊的黑客,如果你沒(méi)辦法隱藏你的真實(shí)ip地址,那你最好到網(wǎng)吧里作案,起碼不會(huì)讓別人確切的定位你,因?yàn)楣部隙苷业骄W(wǎng)吧,但網(wǎng)吧里的電腦太多了,不好確定你的是哪一臺(tái)電腦,等通過(guò)調(diào)查找到的時(shí)候,你又換了個(gè)網(wǎng)吧。


2,如果你想讓兩臺(tái)電腦直接互聯(lián),而不通過(guò)集線器或路由器幫忙,可以使用交叉線( 雙絞線的另一種)連接兩臺(tái)電腦,兩臺(tái)電腦設(shè)置為同一個(gè)網(wǎng)段,于是兩臺(tái)電腦就可以直接通信。比如可以連機(jī)一起打游戲,但是必須要讓其中的一臺(tái)當(dāng)服務(wù)器。  所以從表面看起來(lái),這兩臺(tái)電腦是直接點(diǎn)對(duì)點(diǎn)的連接,但本質(zhì)上講還是有一臺(tái)服務(wù)器的存在。 即便是A B 拷貝了一個(gè)文件,那么也是A 作為客戶端, B作為服務(wù)器,操作系統(tǒng)內(nèi)置了軟件以某種協(xié)議完成文件從B下載到A.   這種點(diǎn)對(duì)點(diǎn)的協(xié)議,就是p2p的由來(lái)。



3,如果有三臺(tái)電腦 A, B, C。 C作為服務(wù)器,a b都要跟c這個(gè)服務(wù)器通信。 現(xiàn)在AB都想從c 上下載東西,連接方式為a----->c,  b------>c .  那么如果,a發(fā)現(xiàn)b 已經(jīng)從c上下載了自己想要下載的東西,那么a可以不用從c上下載了,而是直接從b那里去下載,這樣就把b當(dāng)成一個(gè)臨時(shí)的服務(wù)器看待了,連接方式為a----->bab之間數(shù)據(jù)傳輸并沒(méi)有靠c,而是點(diǎn)對(duì)點(diǎn)自己完成, 這就是p2p協(xié)議的作用,任何一臺(tái)客戶端又都可以做為服務(wù)器來(lái)使用。使用p2p協(xié)議最典型的例子是bt等下載軟件,可以大幅度提高下載效率, 而且種子(客戶端)越多下載往往越快,因?yàn)槟悴槐乜偸侨サ确?wù)器給你傳數(shù)據(jù),而是可以從別的客戶端哪里獲得數(shù)據(jù)。


藍(lán)牙通信:  幾臺(tái)手機(jī)如果都有藍(lán)牙,他們不借助一臺(tái)專門的服務(wù)器就可以直接進(jìn)行通信,可以歸納為p2p范疇。其實(shí)本質(zhì)上講,就是一臺(tái)手機(jī)臨時(shí)做了服務(wù)器而已,可以等待別的手機(jī)來(lái)連接,一旦連接成功就可以通信了。



  udp協(xié)議-----tcp/ip 之間的區(qū)別

如果說(shuō)http,  ftp,p2p都屬于 tcp/ip范疇,那么udp協(xié)議是獨(dú)立的。

tcp/ip 的通信流程: 兩部設(shè)備進(jìn)行通信,  a 把數(shù)據(jù)發(fā)送給b, 數(shù)據(jù)可能比較多,反映在代碼中貌似是一次性把數(shù)據(jù)發(fā)送給b,其事實(shí)上代碼僅僅是把數(shù)據(jù)發(fā)送給了a的網(wǎng)卡,由網(wǎng)卡負(fù)責(zé)發(fā)送,網(wǎng)卡干了什么呢?  網(wǎng)卡會(huì)把數(shù)據(jù)肢解為一個(gè)一個(gè)的包,包的大小跟網(wǎng)卡的型號(hào)有一點(diǎn)關(guān)系,但通常一個(gè)包得最大容量為是8k左右。 如果我方是基于tcp發(fā)送,那么包是確定完整性的,也就是對(duì)方必須要接收到完整的包,如果一個(gè)包發(fā)送了一半網(wǎng)絡(luò)阻塞了(注意是阻塞而不是斷開(kāi)),那么對(duì)方的網(wǎng)卡不會(huì)拿著半個(gè)包去使用,那就意味著整個(gè)一個(gè)包都沒(méi)發(fā)出去,我方網(wǎng)卡會(huì)嘗試重新發(fā)包,保證包的完整性,直到網(wǎng)絡(luò)不阻塞。 我們大部分通信都是基于tcp/ip的, TCP協(xié)議提供傳輸控制,按順序組織數(shù)據(jù),和錯(cuò)誤糾正。



UDP協(xié)議。

UDP則不同,如果是基于udp通信, 一方發(fā)包,并不要求對(duì)方一定要接,就象廣播一樣,有的人開(kāi)收音機(jī)收聽(tīng)了,有的人可以不收聽(tīng),無(wú)所謂。

在選擇使用協(xié)議的時(shí)候,選擇UDP必須要謹(jǐn)慎。在網(wǎng)絡(luò)質(zhì)量令人不十分滿意的環(huán)境下,UDP協(xié)議數(shù)據(jù)包丟失會(huì)比較嚴(yán)重。但是由于UDP的特性:它不屬于連接型協(xié)議,因而具有資源消耗小,處理速度快的優(yōu)點(diǎn),所以通常音頻、視頻和普通數(shù)據(jù)在傳送時(shí)使用UDP較多,因?yàn)樗鼈兗词古紶杹G失一兩個(gè)數(shù)據(jù)包,也不會(huì)對(duì)接收結(jié)果產(chǎn)生太大影響。比如我們聊天用的ICQQQ就是使用UDP協(xié)議。事實(shí)上,UDP協(xié)議的這種亂序性基本上很少出現(xiàn),通常只會(huì)在網(wǎng)絡(luò)非常擁擠的情況下才有可能發(fā)生。



socket


socket并不是一種協(xié)議, 而代表了通信的底層方式,翻譯為套接字 從本質(zhì)上講,一切通信,不管是tcp還是udp 都是基于 socket(套接字)的。 只不過(guò)tcp應(yīng)用比較廣泛,所以我們通常說(shuō)socket通信如果不特殊強(qiáng)調(diào)為udp通信,默認(rèn)為tcp的。


socket通信比較困難,是因?yàn)?span id="c9ozetgccsir" class="s2">http通信網(wǎng)上可以下到成熟客戶端框架,服務(wù)器端因?yàn)橛?span id="c9ozetgccsir" class="s2">web服務(wù)器支持也好處理。 ftp協(xié)議客戶端有系統(tǒng)專用類的支持,ftp服務(wù)器也能找到別人寫好的東西。因?yàn)檫@些以上這些協(xié)議使用比較普遍了,肯定有高人閑著沒(méi)事整點(diǎn)相關(guān)東西拿出來(lái)共享。但是socket感覺(jué)稍微底層一些,通信協(xié)議可以自定,如果你想在socket之上自己去實(shí)現(xiàn)http,ftp,p2p等公共協(xié)議的通信,還需要自己去查看這些協(xié)議的白皮書(shū),完全按照這些協(xié)議規(guī)定的去做開(kāi)發(fā),所以說(shuō)如果你打算用socket做開(kāi)發(fā),顯然是打算放棄這些公共協(xié)議了(因?yàn)槟阃耆勘匾约喝パ芯繀f(xié)議規(guī)則,按照協(xié)議來(lái)組織數(shù)據(jù)格式和請(qǐng)求方式),而是采用自己規(guī)定的協(xié)議去做東西了。就象給了你一個(gè)畫(huà)板和畫(huà)筆, 畫(huà)什么東西自己看著辦吧,連畫(huà)個(gè)圓都要自己想辦法,這很自由了,但是相對(duì)麻煩了。最重要的是服務(wù)器需要有人專門寫代碼處理,比如要做一個(gè)網(wǎng)絡(luò)游戲,服務(wù)器要有人專門去寫,肯定不需要什么http,ftp,p2p之類的協(xié)議的約束,肯定也不會(huì)借助tomcat這樣的web服務(wù)器,除非你做得網(wǎng)絡(luò)游戲是網(wǎng)頁(yè)游戲而不是c/s模式得游戲,

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
圖解網(wǎng)規(guī):計(jì)算機(jī)網(wǎng)絡(luò)概述,TCP/IP協(xié)議族,TCP、UDP端口大全!
[網(wǎng)絡(luò)] SOCKET, TCP/UDP, HTTP, FTP
幾個(gè)常用的網(wǎng)絡(luò)協(xié)議
網(wǎng)絡(luò)工程師必備的15個(gè)常用網(wǎng)絡(luò)端口解釋
【W(wǎng)io Link測(cè)評(píng)】第三篇 改個(gè)APK來(lái)玩玩
TCP/IP協(xié)議初步認(rèn)識(shí)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服