http服務(wù)第二篇

Internet網(wǎng)的主機(jī)通信

  • Internet網(wǎng)里面主機(jī)想通信來傳輸數(shù)據(jù),在他們通信連接每一端,和進(jìn)程間的傳輸要有兩個(gè)標(biāo)志

  • 一是IP地址,二是端口號(hào)诈火,我們合稱為套接字地址socket address

  • 客戶機(jī)套接字地址定義了唯一的客戶進(jìn)程

  • 服務(wù)器套接字地址定義了一個(gè)唯一的服務(wù)器進(jìn)程

  • 但是進(jìn)程間通信只是其中一種,還有發(fā)信號(hào)通信状答,還有共享內(nèi)存等

  • IP地址來標(biāo)識(shí)主機(jī)(也就是區(qū)分主機(jī))冷守,端口號(hào)來標(biāo)識(shí)進(jìn)程(也就是區(qū)分進(jìn)程)

  • 把他們連起來就可以標(biāo)識(shí)網(wǎng)絡(luò)當(dāng)中的唯一的進(jìn)程或主機(jī)了

  • 通過IP地址找到主機(jī),端口號(hào)來找到進(jìn)程惊科,之后在來通信

socket 套接字

  • Socket: 套接字拍摇,進(jìn)程間通信 IPC 的一種實(shí)現(xiàn),允許位于不同主機(jī)(或同一主機(jī))上不同進(jìn)程之間進(jìn)行通信和數(shù)據(jù)交換馆截, SocketAPI 出現(xiàn)于 1983 年充活, 4.2 BSD 實(shí)現(xiàn)
  • Socket API :封裝了內(nèi)核中所提供的 socket 通信相關(guān)的系統(tǒng)調(diào)用
  • Socket Domain :根據(jù)其所使用的地址
    • AF_INET : Address Family , IPv4
    • AF_INET6 : IPv6
    • AF_UNIX :同一主機(jī)上不同進(jìn)程之間通信時(shí)使用 :這是本機(jī)通信的Socket
  • Socket Type :根據(jù)使用的傳輸層協(xié)議
    • SOCK_STREAM :流, tcp 套接字混卵,可靠地傳遞映穗、面向連接
    • SOCK_DGRAM :數(shù)據(jù)報(bào), udp 套接字淮菠,不可靠地傳遞男公、無連接
    • SOCK_RAW: 裸套接字 , 無須 tcp 或 tdp,APP 直接通過 IP 包通信
  • 上圖以套接字為分割線荤堪,下四層關(guān)系的是怎么在網(wǎng)絡(luò)中傳輸數(shù)據(jù)合陵,這表示下四層都是用內(nèi)核來控制的不是操作系統(tǒng)來控制
    • 物理層,連接網(wǎng)絡(luò)設(shè)備的
    • 數(shù)據(jù)鏈路層澄阳,關(guān)系的是鏈路傳輸拥知,如MAC地址
    • 網(wǎng)絡(luò)層,如路由碎赢、IP等等
    • 傳輸層低剔,如端口號(hào)
  • 程序是工作在應(yīng)用層,操作系統(tǒng)內(nèi)核是工作在內(nèi)核層
  • 所以應(yīng)用層關(guān)系的是應(yīng)用的細(xì)節(jié)肮塞,內(nèi)核關(guān)系的是通信的細(xì)節(jié)
  • 上圖所表述的是基本 TCP 客戶 / 服務(wù)器程序的套接字函數(shù)

  • TCP服務(wù)端首先用socket套接字來創(chuàng)建個(gè)socket來襟齿,然后用dind來綁定IP或端口來自己指定,接著就開始監(jiān)聽了listen,就開始打開端口了枕赵,來讓別人來訪問

  • accept執(zhí)行完以后他就可以接收外部的連接

  • 假如這時(shí)候有一個(gè)客戶端猜欺,他也創(chuàng)建了socket套接字,不過可能IP和端口是隨機(jī)的拷窜,然后通過connect 來建立連接服務(wù)器

  • 這時(shí)候客戶端和服務(wù)器端就有數(shù)據(jù)進(jìn)行交換了

  • 通常來說客戶端會(huì)通過write這樣的函數(shù)來寫數(shù)據(jù)开皿,寫好以后在傳給服務(wù)端,服務(wù)器接收到數(shù)據(jù)以后篮昧,會(huì)用read這個(gè)函數(shù)來讀數(shù)據(jù)赋荆,數(shù)據(jù)讀取完成以后就開始處理客戶端的請(qǐng)求,然后也開始寫數(shù)據(jù)懊昨,在傳回給客戶端

  • 客戶端接收到數(shù)據(jù)以后窄潭,也會(huì)讀,然后在寫酵颁,以此循環(huán)

  • 如果數(shù)據(jù)處理完畢以后客戶端會(huì)用close函數(shù)來結(jié)束連接

  • 在里面用到了一些系統(tǒng)調(diào)用狈孔,在不同的語言里面,都有不同的開發(fā)庫

  • 套接字相關(guān)的系統(tǒng)調(diào)用:

    • socket(): 創(chuàng)建一個(gè)套接字
    • bind() :綁定 IP 和端口
    • listen() :監(jiān)聽
    • accept() :接收請(qǐng)求
    • connect() :請(qǐng)求連接建立
    • write() :發(fā)送
    • read() :接收
    • close(): 關(guān)閉連接
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末材义,一起剝皮案震驚了整個(gè)濱河市均抽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌其掂,老刑警劉巖油挥,帶你破解...
    沈念sama閱讀 212,657評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡深寥,警方通過查閱死者的電腦和手機(jī)攘乒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,662評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惋鹅,“玉大人则酝,你說我怎么就攤上這事∪蚣” “怎么了沽讹?”我有些...
    開封第一講書人閱讀 158,143評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長武鲁。 經(jīng)常有香客問我爽雄,道長,這世上最難降的妖魔是什么沐鼠? 我笑而不...
    開封第一講書人閱讀 56,732評(píng)論 1 284
  • 正文 為了忘掉前任挚瘟,我火速辦了婚禮,結(jié)果婚禮上饲梭,老公的妹妹穿的比我還像新娘乘盖。我一直安慰自己,他們只是感情好憔涉,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,837評(píng)論 6 386
  • 文/花漫 我一把揭開白布订框。 她就那樣靜靜地躺著,像睡著了一般监氢。 火紅的嫁衣襯著肌膚如雪布蔗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,036評(píng)論 1 291
  • 那天浪腐,我揣著相機(jī)與錄音纵揍,去河邊找鬼。 笑死议街,一個(gè)胖子當(dāng)著我的面吹牛泽谨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播特漩,決...
    沈念sama閱讀 39,126評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼吧雹,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了涂身?” 一聲冷哼從身側(cè)響起雄卷,我...
    開封第一講書人閱讀 37,868評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蛤售,沒想到半個(gè)月后丁鹉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妒潭,經(jīng)...
    沈念sama閱讀 44,315評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,641評(píng)論 2 327
  • 正文 我和宋清朗相戀三年揣钦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雳灾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,773評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冯凹,死狀恐怖谎亩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宇姚,我是刑警寧澤匈庭,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站空凸,受9級(jí)特大地震影響嚎花,放射性物質(zhì)發(fā)生泄漏寸痢。R本人自食惡果不足惜呀洲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啼止。 院中可真熱鬧道逗,春花似錦、人聲如沸献烦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,859評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巩那。三九已至吏夯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間即横,已是汗流浹背噪生。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留东囚,地道東北人跺嗽。 一個(gè)月前我還...
    沈念sama閱讀 46,584評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像页藻,于是被迫代替她去往敵國和親桨嫁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,676評(píng)論 2 351

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