August 7-day 19-PythonSocket模塊

服務(wù)端

  • socket編程(套接字): 指的就是通過(guò)代碼來(lái)創(chuàng)建實(shí)現(xiàn)通信的兩個(gè)端(服務(wù)器和客戶(hù)端)
    socket一般可以基于TCP和UDP實(shí)現(xiàn)客戶(hù)端和服務(wù)器之間的可靠傳輸和不可靠傳輸
    python中的內(nèi)置模塊socket可以支持socket編程
import socket

# 通過(guò)socket實(shí)現(xiàn)服務(wù)器端

if __name__ == '__main__':
    # 1. 創(chuàng)建服務(wù)器套接字對(duì)象
    """
    family:確定服務(wù)類(lèi)型 
            AF_INET --> ipv4
            AF_INET6 --> ipv6
            
    type:確定傳輸協(xié)議類(lèi)型
        SOCK_STREAM -> TCP協(xié)議
        SOCK_DGRAM -> UDP協(xié)議 
    """
    # server = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
    server = socket.socket()

    # 2. 綁定ip地址和端口
    """
    地址格式:(ip地址字符串, 端口號(hào))
    端口號(hào)是用來(lái)區(qū)分一個(gè)計(jì)算機(jī)中不同的服務(wù),范圍是0-65535叼旋;
    注意:1.其中0-1024是'著名端口'用來(lái)綁定一些特殊的服務(wù)的直奋,一般不使用。
         2.同一時(shí)間一個(gè)端口只能綁定一個(gè)服務(wù)
    """
    server.bind(('10.7.181.117', 8081))

    # 3. 監(jiān)聽(tīng)
    """
    參數(shù):用來(lái)限制一次性能夠接受的客服端請(qǐng)求數(shù)量
    """
    server.listen(50)
    print('開(kāi)始監(jiān)聽(tīng)請(qǐng)求')

    # 保證服務(wù)器處于一直啟動(dòng)的狀態(tài)
    while True:
        # 4. 接收客戶(hù)端的請(qǐng)求
        """
        accept()會(huì)阻塞線(xiàn)程犹赖,當(dāng)有客戶(hù)端給這個(gè)服務(wù)器發(fā)送請(qǐng)求度苔,才會(huì)開(kāi)始執(zhí)行
        """
        client, addr = server.accept()
        print(addr)

        # 5.給客戶(hù)端發(fā)送消息
        """
        send(數(shù)據(jù)):數(shù)據(jù)必須是二進(jìn)制數(shù)據(jù)(bytes)類(lèi)型
        
        字符串轉(zhuǎn)二進(jìn)制:
        bytes(字符串,encoding=編碼方式)
        字符串.encode(encoding=編碼方式)
        """
        client.send('HTTP/1.1 200 OK\r\n\r\n'.encode(encoding='utf-8'))
        client.send(bytes('hello', encoding='utf-8'))
        client.send('python'.encode())

        # 接收從客戶(hù)端發(fā)來(lái)的消息
        """
        bufsize:設(shè)置緩存大幸艚搿(單位是字節(jié))
        1024字節(jié) -> 1k
        1024k -> 1M
        1024M -> 1G
        1024G -> 1T
        1024T - 1P
        
        二進(jìn)制(bytes)轉(zhuǎn)換字符串:
        a. str(二進(jìn)制數(shù)據(jù), encoding='utf-8')
        b. 二進(jìn)制數(shù)據(jù).decode(encoding='utf-8')
         """
        # data = client.recv(1024)
        # str1 = str(data, encoding='utf-8')
        # str2 = data.decode(encoding='utf-8')
        # print(str1)

        # 6.關(guān)閉連接
        client.close()

客戶(hù)端

import socket

if __name__ == '__main__':
    # 1.創(chuàng)建對(duì)象
    server = socket.socket()

    # 2.綁定地址
    server.bind(('10.7.181.117', 12345))

    # 3.監(jiān)聽(tīng)
    server.listen(50)

    # 保持服務(wù)器不關(guān)閉
    while True:
        conversation, addr = server.accept()
        print(addr)

        # 讓客戶(hù)端和服務(wù)器一直處于連接的狀態(tài)
        while True:
            # 發(fā)送消息
            message = input('>>>')
            conversation.send(message.encode())

            # 接收消息
            message_data = conversation.recv(1024)
            print(message_data.decode(encoding='utf-8'))

http協(xié)議

  • 服務(wù)器:(python)\java\php等等
  • HTTP(為了可以讓客戶(hù)端和服務(wù)器能夠進(jìn)行有效的數(shù)據(jù)交流)
  • 客戶(hù)端:網(wǎng)頁(yè)(js)攻泼、iOS設(shè)備上的軟件(OC/Swift)竣付、安卓設(shè)備上的軟件(java)
  • python中訪(fǎng)問(wèn)網(wǎng)絡(luò)中的數(shù)據(jù):第三方庫(kù)requests
from requests import request

if __name__ == '__main__':
    # https: // www.apiopen.top / satinApi?type = 1 & page = 1
    # GET請(qǐng)求:參數(shù)以诡延?號(hào)的形式拼接到url地址后面,參數(shù)名=值的形式卑笨,多個(gè)參數(shù)用&隔開(kāi)
    # 1.確定url
    url = 'https://www.apiopen.top/satinApi?type=1&page=1'

    # 2.發(fā)送請(qǐng)求
    """
    request(請(qǐng)求方式,請(qǐng)求地址)
    返回值:響應(yīng)
    """
    response = request('GET', url)
    print(type(response), response)

    # 1.以字符串的形式獲取響應(yīng)體(服務(wù)器返回的數(shù)據(jù))
    text = response.text
    print(type(text), text)

    # 2.以json的形式獲取響應(yīng)體
    json = response.json()
    print(type(json),json)

    # 3.以二進(jìn)制的形式獲取響應(yīng)體
    content = response.content
    print(type(content), content)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末孕暇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子赤兴,更是在濱河造成了極大的恐慌妖滔,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桶良,死亡現(xiàn)場(chǎng)離奇詭異座舍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)陨帆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)曲秉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人疲牵,你說(shuō)我怎么就攤上這事承二。” “怎么了纲爸?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵亥鸠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)负蚊,這世上最難降的妖魔是什么神妹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮家妆,結(jié)果婚禮上鸵荠,老公的妹妹穿的比我還像新娘。我一直安慰自己伤极,他們只是感情好蛹找,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著塑荒,像睡著了一般熄赡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上齿税,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天彼硫,我揣著相機(jī)與錄音,去河邊找鬼凌箕。 笑死拧篮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牵舱。 我是一名探鬼主播串绩,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼芜壁!你這毒婦竟也來(lái)了礁凡?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤慧妄,失蹤者是張志新(化名)和其女友劉穎顷牌,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體塞淹,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窟蓝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了饱普。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片运挫。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖套耕,靈堂內(nèi)的尸體忽然破棺而出谁帕,到底是詐尸還是另有隱情,我是刑警寧澤冯袍,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布雇卷,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏关划。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一翘瓮、第九天 我趴在偏房一處隱蔽的房頂上張望贮折。 院中可真熱鬧,春花似錦资盅、人聲如沸调榄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)每庆。三九已至,卻和暖如春今穿,著一層夾襖步出監(jiān)牢的瞬間缤灵,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工蓝晒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腮出,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓芝薇,卻偏偏與公主長(zhǎng)得像胚嘲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子馋劈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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

  • 計(jì)算機(jī)網(wǎng)絡(luò)概述 網(wǎng)絡(luò)編程的實(shí)質(zhì)就是兩個(gè)(或多個(gè))設(shè)備(例如計(jì)算機(jī))之間的數(shù)據(jù)傳輸。 按照計(jì)算機(jī)網(wǎng)絡(luò)的定義晾嘶,通過(guò)一定...
    蛋炒飯_By閱讀 1,231評(píng)論 0 10
  • 網(wǎng)絡(luò)編程 網(wǎng)絡(luò)編程對(duì)于很多的初學(xué)者來(lái)說(shuō),都是很向往的一種編程技能变擒,但是很多的初學(xué)者卻因?yàn)楹荛L(zhǎng)一段時(shí)間無(wú)法進(jìn)入網(wǎng)絡(luò)編...
    程序員歐陽(yáng)閱讀 2,017評(píng)論 1 37
  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱(chēng)項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明先生_X自主閱讀 15,985評(píng)論 3 119
  • 重事實(shí)娇斑,輕評(píng)論:思考的基礎(chǔ)材料是事實(shí)信息,其中既包括調(diào)查出的數(shù)據(jù)毫缆,也包括富含細(xì)節(jié)唯竹、深入的描述性信息苦丁。觀點(diǎn)和評(píng)論雖然...
    九色鹿鳴閱讀 327評(píng)論 0 0
  • 當(dāng)中文老師 傳播中國(guó)文化
    一會(huì)無(wú)名閱讀 114評(píng)論 0 0