Linux網(wǎng)絡(luò)編程:Socket編程基礎(chǔ)

一、什么是網(wǎng)絡(luò)編程?

網(wǎng)絡(luò)編程是進(jìn)程間通信的延續(xù)。
IPC:同一臺(tái)電腦上同一系統(tǒng)里的兩個(gè)進(jìn)程間通信。
網(wǎng)絡(luò):不同電腦上(操作系統(tǒng)也可能不一樣)的兩個(gè)進(jìn)程間通信。

互聯(lián)網(wǎng)與因特網(wǎng)

互聯(lián)網(wǎng)(internet):廣義詞,網(wǎng)網(wǎng)相聯(lián)。
因特網(wǎng)(Internet):專有詞,全球小老百姓使用的一個(gè)互聯(lián)網(wǎng)。

網(wǎng)絡(luò)協(xié)議:每一種不同互聯(lián)網(wǎng)都有其對(duì)應(yīng)的一套協(xié)議。
因特網(wǎng)上采用的協(xié)議:TCP/IP協(xié)議

網(wǎng)絡(luò)協(xié)議(Protocol)主要制定如下內(nèi)容:

  1. 一共需要傳輸多少種數(shù)據(jù)包
  2. 每個(gè)數(shù)據(jù)包中的二進(jìn)制位含義(這樣的數(shù)據(jù)包也被稱為PDU:Protocol Data Unit)
  3. 數(shù)據(jù)包的使用次序
ip地址 & 端口號(hào) & MAC地址
  • ip地址:
    a. 點(diǎn)分十進(jìn)制的字符串 "192.168.0.23" 4個(gè)數(shù)字取值范圍 0~255
    b. 連續(xù)四字節(jié)的整型(編程所需的形式)
    c. 域名("www.sina.com.cn")
服務(wù)名.機(jī)構(gòu)名.用途名.地區(qū)名
服務(wù)名:www(web服務(wù)、網(wǎng)頁(yè)服務(wù))、ftp、mailto
  • 端口號(hào):
    兩個(gè)字節(jié)的整型(0~65535)
    0~1023:全球通用的一些服務(wù)。例如:網(wǎng)頁(yè):80,文件服務(wù):23等。
    自定義的服務(wù)端口號(hào):1024開(kāi)始。
  • MAC地址:(硬件地址 網(wǎng)卡地址)
    局域網(wǎng)范圍以內(nèi)如何區(qū)分不同網(wǎng)口(網(wǎng)卡)的方法
a. 點(diǎn)分十六進(jìn)制的字符串 "AB.56.F2.23.CD.32"  4個(gè)數(shù)字取值范圍 0~255
b. 連續(xù)六字節(jié)的整型(編程所需的形式)
TCP/IP協(xié)議

TCP/IP五層協(xié)議模型:

  1. 應(yīng)用層:對(duì)應(yīng)網(wǎng)絡(luò)服務(wù)數(shù)據(jù)(http ftp SMTP POP3 IMAP4 DNS....)
  2. 傳輸層:進(jìn)程間的傳輸(TCP UDP)
  3. 網(wǎng)絡(luò)層:電腦間的傳輸(IP)
  4. 鏈路層:局域網(wǎng)范圍內(nèi)網(wǎng)口到網(wǎng)口的傳輸
  5. 物理層:用哪種傳輸介質(zhì)以及這種傳輸介質(zhì)如何表示二進(jìn)制位
客戶端 & 服務(wù)器
  • 客戶端:享受服務(wù)的進(jìn)程
  • 服務(wù)器:提供服務(wù)的進(jìn)程
二、后續(xù)學(xué)習(xí)
應(yīng)用層數(shù)據(jù)的組織
  • 應(yīng)用層采用什么協(xié)議?
  • 是現(xiàn)成的還是自定義?
傳輸層的功能如何去用
  • TCP特點(diǎn)和使用方法
    **TCP: Transfer Control Protocol **
    面向連接的、可靠的(可靠:確保雙發(fā)傳輸?shù)臄?shù)據(jù)能到達(dá)對(duì)方)。
    面向連接:意味著使用TCP進(jìn)行傳輸前,需要通信雙方建立好連接。
    連接建立的過(guò)程如下:(三次握手)
    1)客戶端發(fā)送連接請(qǐng)求
    2)服務(wù)器針對(duì)這個(gè)請(qǐng)求給一個(gè)對(duì)應(yīng)的回應(yīng)
    3)客戶端再回給服務(wù)器一個(gè)回應(yīng)的回應(yīng)
  • UDP特點(diǎn)和使用方法
    UDP: User Data Protocol
    面向非連接、不可靠的(不可靠的:發(fā)送方只負(fù)責(zé)將數(shù)據(jù)發(fā)出去,確無(wú)法明確對(duì)方是否收到)。
    面向非連接:意味著使用UDP進(jìn)行傳輸前,通信雙方不需建立好連接。
  • 網(wǎng)絡(luò)編程也被稱為socket編程
    能夠發(fā)送和接收數(shù)據(jù)的Socket,必須具備:
    a. 本端的地址(即本端的ip地址 + 端口號(hào))
    b. 遠(yuǎn)端的地址(即遠(yuǎn)端的ip地址 + 端口號(hào))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 11,082評(píng)論 6 13
  • 1. 網(wǎng)絡(luò)編程概述 1.1 計(jì)算機(jī)網(wǎng)絡(luò) 是指將地理位置不同的具有獨(dú)立功能的多臺(tái)計(jì)算機(jī)及其外部設(shè)備,通過(guò)通信線路連接...
    JackChen1024閱讀 1,048評(píng)論 0 3
  • 個(gè)人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,087評(píng)論 0 8
  • 你去過(guò)很多城市, 經(jīng)過(guò)很多車站。 遇見(jiàn)很多種人, 也見(jiàn)過(guò)很多樣子的云。 喝過(guò)最甜和最烈的酒, 發(fā)過(guò)很多次的朋友圈。...
    潔住幸福閱讀 232評(píng)論 1 1
  • 一個(gè)人的七夕 文/李簡(jiǎn) 再過(guò)一個(gè)多小時(shí)就又是一年一度的七夕了。看看還是要一個(gè)人過(guò),但是心里并不感到悲涼。因?yàn)闆](méi)什么...
    李簡(jiǎn)jian閱讀 172評(píng)論 0 0