2018-11-29TCP/UDP 套接字

!/usr/bin/env python

-- coding:utf-8 --

Author:Jarry

1.傳輸模型
1.概念
OSI模型
就是個(gè)概念陕习,用來協(xié)調(diào)進(jìn)程間通信標(biāo)準(zhǔn)的制定霎褐,并沒有提供一個(gè)實(shí)現(xiàn)的方法。事實(shí)上的標(biāo)準(zhǔn)是TCP/IP參考模型
TCP/IP 模型
TCP/IP協(xié)議不是TCP和IP兩個(gè)個(gè)協(xié)議的合稱该镣,而是指因特網(wǎng)整個(gè)TCP/IP協(xié)議族
2.模型對(duì)比
OSI TCP/IP
應(yīng)用層 應(yīng)用層
表示層
會(huì)話層
傳輸層 傳輸層
網(wǎng)絡(luò)層 網(wǎng)絡(luò)層
數(shù)據(jù)鏈路層 網(wǎng)絡(luò)接口層
物理層
2.TCP協(xié)議
1.概念
TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的冻璃、可靠的、基于字節(jié)流的傳輸層通信協(xié)議
2.要點(diǎn)
TCP協(xié)議是面向連接的损合,需要連接才能傳數(shù)據(jù)
TCP的連接需要3次握手
TCP的斷開需要4次揮手
3.UDP
互聯(lián)網(wǎng)的傳輸數(shù)據(jù)主要是兩個(gè)協(xié)議:TCP和UDP
UDP是無連接的俱饿,不管收不收得到。思考塌忽,什么情況用TCP拍埠,什么情況用UDP
理解小技巧,TCP是打電話土居,UDP是寫信枣购,寫完投遞就好了
3.IP地址和端口
1.IP
1.概念
IP地址是指互聯(lián)網(wǎng)協(xié)議地址(英語(yǔ):Internet Protocol Address,又譯為網(wǎng)際協(xié)議地址)擦耀,是IP Address的縮寫棉圈。
IP地址被用來給Internet上的電腦一個(gè)編號(hào)
2.ip地址格式
IP地址是一個(gè)32位的二進(jìn)制數(shù),通常被分割為4個(gè)“8位二進(jìn)制數(shù)”(也就是4個(gè)字節(jié))眷蜓。
IP地址通常用“點(diǎn)分十進(jìn)制”表示成(a.b.c.d)的形式分瘾,其中,a,b,c,d都是0~255之間的十進(jìn)制整數(shù)吁系。例如:192.168.1.1
最初設(shè)計(jì)互聯(lián)網(wǎng)絡(luò)時(shí)德召,為了便于尋址以及層次化構(gòu)造網(wǎng)絡(luò),每個(gè)IP地址包括兩個(gè)標(biāo)識(shí)碼(ID)汽纤,即網(wǎng)絡(luò)ID和主機(jī)ID
3.按網(wǎng)絡(luò)規(guī)模分類
A類 大型網(wǎng)絡(luò)
B類 中型網(wǎng)絡(luò)
C類 小型網(wǎng)絡(luò)
4.按用途分類:
1.公有地址上岗,直接在互聯(lián)網(wǎng)上使用的IP地址
2.私有地址,局域網(wǎng)使用的地址
2.端口
1.概念
"端口"是英文port的意譯蕴坪,是設(shè)備與外界通訊交流的出口肴掷。
端口可分為虛擬端口和物理端口,其中虛擬端口指計(jì)算機(jī)內(nèi)部或交換機(jī)路由器內(nèi)的端口背传,不可見呆瞻。
例如計(jì)算機(jī)中的80端口、21端口径玖、23端口等痴脾。
物理端口又稱為接口,是可見端口挺狰,計(jì)算機(jī)背板的RJ45網(wǎng)口明郭,交換機(jī)路由器集線器等RJ45端口。
今天我們主要來學(xué)習(xí)計(jì)算機(jī)的虛擬端口丰泊。
2.注意要點(diǎn)
1.計(jì)算機(jī)用整數(shù)表示端口
2.一臺(tái)電腦有65536個(gè)端口 2^16次方個(gè)薯定,范圍是0-65535
3.一個(gè)端口只能同時(shí)被一個(gè)應(yīng)用程序使用
3.分類(擴(kuò)展)
1.周知端口
眾所周知的端口,范圍0-1023被系統(tǒng)服務(wù)占用瞳购,不要隨便使用和修改
2.動(dòng)態(tài)端口
動(dòng)態(tài)端口的范圍是從49152到65535话侄。
之所以稱為動(dòng)態(tài)端口,是因?yàn)樗?一般不固定分配某種服務(wù)学赛,而是動(dòng)態(tài)分配年堆。
3.注冊(cè)端口
端口1024到49151,分配給用戶進(jìn)程或應(yīng)用程序盏浇。
這些進(jìn)程主要是用戶選擇安裝的一些應(yīng)用程序变丧,而不是已經(jīng)分配好了公認(rèn)端口的常用程序。
這些端口在沒有被服務(wù)器資源占用的時(shí)候绢掰,可以用用戶端動(dòng)態(tài)選用為源端口痒蓬。
4.套接字(socket)
1.定義
其實(shí)它是以個(gè)程序接口,它把復(fù)雜的TCP/IP協(xié)議族封裝為幾個(gè)簡(jiǎn)單的接口提供給應(yīng)用層調(diào)用滴劲,
實(shí)現(xiàn)程序在網(wǎng)絡(luò)中的通信攻晒。socket是計(jì)算機(jī)網(wǎng)絡(luò)通信的基本技術(shù)之一。
大多數(shù)基于網(wǎng)絡(luò)的軟件班挖,都是基于socket實(shí)現(xiàn)的鲁捏。
在通信開始之前,網(wǎng)絡(luò)應(yīng)用程序必須創(chuàng)建套接字萧芙。
可以將它比作電話的插孔给梅,電源的插座,沒有它將無法進(jìn)行通信双揪。
2.python中使用套接字
1.創(chuàng)建套接字
"""
創(chuàng)建socket
"""
from socket import * # 導(dǎo)入socket模塊
tcp_sock = socket(family=AF_INET, type=SOCK_STREAM)

        upd_sock = socket(family=AF_INET, type=SOCK_DGRAM)

        # family是地址族 默認(rèn)AF_INET type是指定TCP還是UDP
    2.創(chuàng)建TCP服務(wù)器
        1.創(chuàng)建socket
        2.綁定端口
        3.監(jiān)聽
        4.接收連接
        5.收發(fā)數(shù)據(jù)
        6.循環(huán)4,5

作業(yè):
1.寫一個(gè)不斷接受(while True)用戶連接的服務(wù)端破喻,它的作用是把客戶端發(fā)來的數(shù)據(jù)原封不動(dòng)的返回。

  1. 寫一個(gè)客戶端來測(cè)試上面的服務(wù)端

!/usr/bin/env python

-- coding:utf-8 --

Author:Jarry

import socket

tcp_server =socket.socket() #創(chuàng)建socket連接
tcp_server.bind(('',8881)) #綁定ip 端口
tcp_server.listen(5) #tcp 服務(wù)器 最大連接數(shù)5
while 1:
conn ,addr = tcp_server.accept() #接收 客戶端連接
while 1: #不停的接收 客房 端 傳來的數(shù)據(jù)
data = conn.recv(1024).decode('utf-8') #接收連接 傳過來 的數(shù)據(jù) byte類型
if data == 'q': # 如果是q 停止連接.
break
print(f'接收到來自{addr[0]}的信息:{data}') #服務(wù)器 顯示 接收信息
conn.send('服務(wù)器的回復(fù)來了'.encode()) #發(fā)送給客戶端的反饋
conn.close() #釋放 連接
tcp_server.close() #釋放接口
break

!/usr/bin/env python

-- coding:utf-8 --

Author:Jarry

import socket
client = socket.socket()
client.connect(('192.168.95.128', 8881)) #連接到服務(wù)器
while 1:
data = input('>>>>:')
client.send(f'{data}'.encode()) #發(fā)送信息
data =client.recv(1024) #接收服務(wù)器返回的信息
print(data.decode())
if data =='q': #發(fā)送結(jié)果信息 關(guān)閉連接
break
client.close()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盟榴,一起剝皮案震驚了整個(gè)濱河市曹质,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌擎场,老刑警劉巖羽德,帶你破解...
    沈念sama閱讀 212,080評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異迅办,居然都是意外死亡宅静,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門站欺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姨夹,“玉大人纤垂,你說我怎么就攤上這事×渍耍” “怎么了峭沦?”我有些...
    開封第一講書人閱讀 157,630評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)逃糟。 經(jīng)常有香客問我吼鱼,道長(zhǎng),這世上最難降的妖魔是什么绰咽? 我笑而不...
    開封第一講書人閱讀 56,554評(píng)論 1 284
  • 正文 為了忘掉前任菇肃,我火速辦了婚禮,結(jié)果婚禮上取募,老公的妹妹穿的比我還像新娘琐谤。我一直安慰自己,他們只是感情好玩敏,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,662評(píng)論 6 386
  • 文/花漫 我一把揭開白布笑跛。 她就那樣靜靜地躺著,像睡著了一般聊品。 火紅的嫁衣襯著肌膚如雪飞蹂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,856評(píng)論 1 290
  • 那天翻屈,我揣著相機(jī)與錄音陈哑,去河邊找鬼。 笑死伸眶,一個(gè)胖子當(dāng)著我的面吹牛惊窖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厘贼,決...
    沈念sama閱讀 39,014評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼界酒,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了嘴秸?” 一聲冷哼從身側(cè)響起毁欣,我...
    開封第一講書人閱讀 37,752評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎岳掐,沒想到半個(gè)月后凭疮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,212評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡串述,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,541評(píng)論 2 327
  • 正文 我和宋清朗相戀三年执解,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纲酗。...
    茶點(diǎn)故事閱讀 38,687評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡衰腌,死狀恐怖新蟆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情右蕊,我是刑警寧澤琼稻,帶...
    沈念sama閱讀 34,347評(píng)論 4 331
  • 正文 年R本政府宣布,位于F島的核電站尤泽,受9級(jí)特大地震影響欣簇,放射性物質(zhì)發(fā)生泄漏规脸。R本人自食惡果不足惜坯约,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,973評(píng)論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望莫鸭。 院中可真熱鬧闹丐,春花似錦、人聲如沸被因。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)梨与。三九已至堕花,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間粥鞋,已是汗流浹背缘挽。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呻粹,地道東北人壕曼。 一個(gè)月前我還...
    沈念sama閱讀 46,406評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像等浊,于是被迫代替她去往敵國(guó)和親腮郊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,576評(píng)論 2 349

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

  • 文章首發(fā)于個(gè)人blog歡迎指正補(bǔ)充筹燕,可聯(lián)系lionsom_lin@qq.com原文地址:《網(wǎng)絡(luò)是怎樣連接的》閱讀整...
    lionsom_lin閱讀 14,126評(píng)論 6 31
  • OSI七層模型 我們一般使用的網(wǎng)絡(luò)數(shù)據(jù)傳輸由下而上共有七層,分別為物理層援奢、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層忍捡、傳輸層集漾、會(huì)話層切黔、表示...
    泥孩兒0107閱讀 803評(píng)論 0 2
  • 一、什么是TCP/IP 網(wǎng)絡(luò)和協(xié)議 1. TCP/IP是一類協(xié)議系統(tǒng)具篇,它是一套支持網(wǎng)絡(luò)通信的協(xié)議集合纬霞。網(wǎng)絡(luò)是計(jì)算機(jī)...
    karlon的馬甲閱讀 6,520評(píng)論 1 24
  • 名詞延伸 通俗的說埃疫,域名就相當(dāng)于一個(gè)家庭的門牌號(hào)碼伏恐,別人通過這個(gè)號(hào)碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,592評(píng)論 2 57
  • 話說兩臺(tái)電腦要通訊就必須遵守共同的規(guī)則栓霜,就好比兩個(gè)人要溝通就必須使用共同的語(yǔ)言一樣翠桦。一個(gè)只懂英語(yǔ)的人,和一個(gè)只懂中...
    哲逗年閱讀 893評(píng)論 0 0