2018-09-12網(wǎng)絡(luò)基礎(chǔ)

網(wǎng)絡(luò)基礎(chǔ)

QQ截圖20180912091833.png

OSI模型

QQ截圖20180912093725.png

協(xié)議

QQ截圖20180912095634.png

數(shù)據(jù)解封

QQ截圖20180912102845.png

數(shù)據(jù)封裝

QQ截圖20180912102912.png

TCP與UDP協(xié)議

QQ截圖20180912103346.png

URL資源定位符

QQ截圖20180912155858.png
QQ截圖20180912160229.png
QQ截圖20180912162055.png
QQ截圖20180912163328.png
QQ截圖20180912164450.png
QQ截圖20180912164737.png

01-socket編程

import socket

  • socket又叫套接字,就是進(jìn)行數(shù)據(jù)通信兩端得运。分為服務(wù)端套接字和客戶端套接字
    套接字編程:自己寫服務(wù)器或者客戶端,進(jìn)行數(shù)據(jù)傳輸
    Python對socket編程的支持:提供一個socket的庫(內(nèi)置)
def creat_server():
    '''寫一個服務(wù)器'''
    1.創(chuàng)建套接字對象
    '''
    socket(family,type)
    a.family:  確定IP協(xié)議類型
    AF_INET:  ipv4
    AF_INET6:  ipv6
    b.type:  傳輸協(xié)議類型
    SOCK_STREAM:  TCP協(xié)議
    SOCK_DGRAM:  UDP協(xié)議
    '''
    server = socket.socket()

    2.綁定IP地址和端口
    '''
    bind((ip地址乙漓,端口))
    端口:一臺電腦上一個端口標(biāo)記一個唯一的服務(wù)。
    范圍0-65535,0-1024是著名端口释移,專門用來標(biāo)記一些特殊的服務(wù)叭披,一般不用
    但是,同一個端口同一時間只能綁定一個服務(wù)
    '''
    server.bind(('10.7.153.190', 2000))

    3.開始監(jiān)聽(監(jiān)聽客戶端的請求)
    '''
    listen(最大監(jiān)聽個數(shù))
    同一時間能夠連接的客戶端的個數(shù)
    '''
    server.listen(10)
    connect, addr = server.accept()

    4.讓服務(wù)器處于運(yùn)行狀態(tài)
    while True:
        print('================')

        5.連接客戶端(建立連接),返回連接對象和客戶端地址
        這句代碼會阻塞線程玩讳。直到有客戶端來請求當(dāng)前服務(wù)器為止
        print('監(jiān)聽狀態(tài)')
        print(addr)
        print('================')

        6.服務(wù)器給客戶端發(fā)送消息
        '''
        send(data)
        data:python3中要求類型是bytes涩蜘,Python2可以是字符串
        1.字符串(str)轉(zhuǎn)換成二進(jìn)制(bytes)
        字符串.encode(編碼方式) ----》 編碼方式默認(rèn)值是'utf-8'
        bytes(字符串,編碼方式)
        '''
        message = input('客戶端:')
        connect.send(message.encode())
        connect.send(bytes(message,'utf-8'))

        if message == '拜拜':
            server.listen(10)
            connect, addr = server.accept()
            continue
        print('=================')

        7.接收從客戶端發(fā)送過來的消息
        注意:recv方法也會阻塞線程
        '''
        recv(bufsize)
        bufsize:每次能夠接收的最大的字節(jié)數(shù)
        返回值:接收的數(shù)據(jù)熏纯,類型是bytes
        
        2.二進(jìn)制轉(zhuǎn)換字符串:
        二進(jìn)制.decode()
        str(二進(jìn)制同诫,編碼方式)
        '''
        recv_datd = connect.recv(1024)
        print(recv_datd.decode())
        # print(str(recv_datd,'utf-8'))

    8.斷開連接
    connect.close()

02-客戶端

import socket

def creat_client():
    1.創(chuàng)建套接字對象
    client = socket.socket()

    2.連接服務(wù)器
    '''
    connect(服務(wù)器地址)
    '''
    client.connect(('10.7.153.190', 2000))
    while True:
        3.接收服務(wù)器發(fā)送的消息
        data = client.recv(1024)
        print(data.decode(encoding='utf-8'))
        print('================')

        4.給服務(wù)器發(fā)送消息
        message = input('服務(wù)器:')
        client.send(message.encode())
        if message == '拜拜':
            break
        print('================')

    5.斷開連接
    client.close()

if __name__ == '__main__':
    creat_client()

03-圖片服務(wù)器

import socket
if __name__ == '__main__':
    1.創(chuàng)建套接字()
    server = socket.socket()

    2.綁定地址(插電話線,綁定電話號碼)
    server.bind(('10.7.153.190', 2000))

    3.監(jiān)聽(人坐在電話旁)
    server.listen(512)

    # 保證電話被打通
    while True:

        4.接收請求(接電話)
        connect,addr = server.accept()
        print(addr)

        5.發(fā)送數(shù)據(jù)(講電話)
        with open('./files/ksnm.jpg','br') as f:
            data = f.read()
        connect.send(data)

        6.接收數(shù)據(jù)(聽對方講話)
        # connect.recv(1024)

        7.關(guān)閉連接(掛電話)
        connect.close()

04-圖片客戶端

import socket
if __name__ == '__main__':
    client = socket.socket()
    client.connect(('10.7.153.190', 2000))

    創(chuàng)建一個空的二進(jìn)制數(shù)據(jù)
    all_data = bytes()

    接收從服務(wù)器傳回來的數(shù)據(jù)
    data = client.recv(1024)
    while data:
        print('接收到數(shù)據(jù)')
        all_data += data
        data = client.recv(1024)

    with open('./files/new.jpg','wb') as f:
        f.write(all_data)
    # print(all_data)
    client.close()

05-http請求

import requests

if __name__ == '__main__':
    1.準(zhǔn)備url()
    url = 'https://www.apiopen.top/satinApi?type=1&page=1'

    2.發(fā)送請求
    '''
    get(url,參數(shù)對應(yīng)的字典)
    post(url,參數(shù)對應(yīng)的字典)
    返回值是服務(wù)器返回的響應(yīng)
    '''
    response = requests.get(url)
    # requests.get('https://www.apiopen.top/satinApi',{'type':1,'page':1})
    print(response)

    3.通過響應(yīng)獲取服務(wù)器返回的數(shù)據(jù)
    a.獲取字符串類型的數(shù)據(jù)
    print(response.text)

    b.獲取json格式的數(shù)據(jù)
    print(response.json())
    print(response.json()['msg'])

    c.獲取二進(jìn)制格式的數(shù)據(jù)
    print(response.content)

    4.獲取響應(yīng)頭(了解)
    print(response.headers)

![QQ截圖20180912091833.png](https://upload-images.jianshu.io/upload_images/13692239-087f21275d20c02a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末樟澜,一起剝皮案震驚了整個濱河市误窖,隨后出現(xiàn)的幾起案子叮盘,更是在濱河造成了極大的恐慌,老刑警劉巖贩猎,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熊户,死亡現(xiàn)場離奇詭異萍膛,居然都是意外死亡吭服,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門蝗罗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艇棕,“玉大人,你說我怎么就攤上這事串塑≌恿穑” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵桩匪,是天一觀的道長打瘪。 經(jīng)常有香客問我,道長傻昙,這世上最難降的妖魔是什么闺骚? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮妆档,結(jié)果婚禮上僻爽,老公的妹妹穿的比我還像新娘。我一直安慰自己贾惦,他們只是感情好胸梆,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著须板,像睡著了一般碰镜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上习瑰,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天洋措,我揣著相機(jī)與錄音,去河邊找鬼杰刽。 笑死菠发,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贺嫂。 我是一名探鬼主播滓鸠,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼第喳!你這毒婦竟也來了糜俗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悠抹,沒想到半個月后珠月,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡楔敌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年啤挎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卵凑。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡庆聘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出勺卢,到底是詐尸還是另有隱情伙判,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布黑忱,位于F島的核電站宴抚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏甫煞。R本人自食惡果不足惜菇曲,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望危虱。 院中可真熱鬧羊娃,春花似錦、人聲如沸埃跷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弥雹。三九已至垃帅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剪勿,已是汗流浹背贸诚。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留厕吉,地道東北人酱固。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像头朱,于是被迫代替她去往敵國和親运悲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

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

  • 1. 網(wǎng)絡(luò)編程概述 1.1 計算機(jī)網(wǎng)絡(luò) 是指將地理位置不同的具有獨立功能的多臺計算機(jī)及其外部設(shè)備项钮,通過通信線路連接...
    JackChen1024閱讀 1,033評論 0 3
  • 網(wǎng)絡(luò)編程的概述 網(wǎng)絡(luò)編程的實質(zhì)就是用來實現(xiàn)網(wǎng)絡(luò)互連的不同計算機(jī)上運(yùn)行的程序間可以進(jìn)行數(shù)據(jù)交換班眯。 一.OSI網(wǎng)絡(luò)模型...
    思念揮霍閱讀 373評論 0 0
  • 1. 網(wǎng)絡(luò)概述 1.1 概述 1.1.1什么是網(wǎng)絡(luò)希停? 早期的計算機(jī)都是互相獨立的一套一臺以數(shù)據(jù)運(yùn)算為主的機(jī)器。...
    _寧采臣閱讀 717評論 0 1
  • 誰說男的不能矯情署隘,不能抱怨宠能,抱怨就像娘們。娘們都喜歡抱怨矯情磁餐,豈不是滿城皆怨婦违崇。我只能通過打字來搞這些鬼事,以保...
    亦凡_閱讀 294評論 1 1
  • 清明期間遇見有個很不喜歡的長輩親戚崖媚,不知道為啥他一開口我就炸了毛似的想發(fā)飆亦歉。小時候坐過他的自行車恤浪,嘰嘰喳喳問...
    自由自在的小魚閱讀 855評論 0 0