主頁(yè) > 知識(shí)庫(kù) > python SOCKET編程基礎(chǔ)入門(mén)

    python SOCKET編程基礎(chǔ)入門(mén)

    熱門(mén)標(biāo)簽:正安縣地圖標(biāo)注app qt百度地圖標(biāo)注 阿里電話(huà)機(jī)器人對(duì)話(huà) 電銷(xiāo)機(jī)器人系統(tǒng)廠家鄭州 400電話(huà)申請(qǐng)資格 螳螂科技外呼系統(tǒng)怎么用 遼寧智能外呼系統(tǒng)需要多少錢(qián) 舉辦過(guò)冬奧會(huì)的城市地圖標(biāo)注 地圖地圖標(biāo)注有嘆號(hào)

    一、UDP編程

    1.客戶(hù)端Client:發(fā)起訪問(wèn)的一方。

    2.服務(wù)器端

    3.server段編程

    (1)建立socket,socket是負(fù)責(zé)具體通信的一個(gè)實(shí)例

    (2)綁定,為創(chuàng)建的socket指派固定的端口和IP地址

    (3)接受對(duì)方發(fā)送內(nèi)容

    (4)給對(duì)方發(fā)送反饋,此步驟為非必須步驟

    4.Client端編程

    (1)建立通信的socket

    (2)發(fā)送內(nèi)容到指定服務(wù)器

    (3)接受服務(wù)器給定的反饋內(nèi)容

    5.模擬一下這個(gè)過(guò)程

    (1)我們先建立一個(gè)服務(wù)器的函數(shù)

    #服務(wù)器案例
    
    import socket
    
    ​
    
    #模擬服務(wù)器的函數(shù)
    
    def serverFunc():
    
      #1.建立socket
    
      #socket.AF_INET:使用IPV4協(xié)議族
    
      #socket.SOCK_DGRAM:使用UDP通信
    
      sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
      #2.綁定ip和port
    
    ​
    
      #127.0.01:這個(gè)ip地址代表的是機(jī)器本身
    
      #7852:隨機(jī)指定的端口號(hào)
    
      #地址是一個(gè)tuple類(lèi)型,(ip.port)
    
      addr = ("127.0.0.1",7852)
    
      sock.bind(addr)
    
    ​
    
      #接受對(duì)方消息
    
      #等待方式為死等,沒(méi)有其他可能性
    
      #recvfrom接受的返回值是一個(gè)元組,前一項(xiàng)表示數(shù)據(jù),后一項(xiàng)表示地址
    
      #參數(shù)的含義是緩沖區(qū)大小
    
      #rst = sock.recvfrom(500)
    
      data,addr = sock.recvfrom(500)
    
    ​
    
      print(data)
    
      print(type(data))
    
    ​
    
      #發(fā)送過(guò)來(lái)的數(shù)據(jù)是bytes格式,必須通過(guò)解碼才能得到str格式內(nèi)容
    
      #decode默認(rèn)參數(shù)是utf8
    
      text = data.decode()
    
      print(type(text))
    
      print(text)
    
    ​
    
      #給對(duì)方反饋的消息
    
      rsp = "I am very hungry now"
    
    ​
    
      #發(fā)送的數(shù)據(jù)需要編程成bytes格式
    
      #默認(rèn)時(shí)utf8
    
      data = rsp.encode()
    
      sock.sendto(data,addr)
    
      
    
    if __name__ == "__main__":
    
      print("Start Server")
    
      serverFunc()
    
    print("End Server")

    (2)然后創(chuàng)建一個(gè)客戶(hù)端的函數(shù)

    import socket
    
    def clientFunc():
    
      sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
      text = "you are very cool"
    
    ​
    
      #發(fā)送的數(shù)據(jù)必須是bytes格式
    
      data = text.encode()
    
      #發(fā)送
    
      sock.sendto(data,("127.0.0.1",7852))
    
      data,addr =sock.recvfrom(200)
    
    ​
    
      data = data.decode()
    
      print(text)
    
    ​
    
    if __name__ == "__main__":
    
      print("Start Client")
    
      clientFunc()
    
    print("End Client")

    (3)我們先啟動(dòng)服務(wù)器端函數(shù)

    出現(xiàn)如下圖像,它是創(chuàng)建了一個(gè)sock,然后自己綁定到127.0.0.1:7852,運(yùn)行到sock.recvfrom(500)這里死等客戶(hù)端發(fā)消息

    (4)再啟動(dòng)客戶(hù)端函數(shù)

    出現(xiàn)如下發(fā)送編碼后的​text內(nèi)容到服務(wù)器(127.0.0.1:7852),服務(wù)器成功接收后返回you are cool這句話(huà)。

    (5)我們?cè)倏捶?wù)器的函數(shù)那里

    接受了bytes格式的字符串,并打印出來(lái)了,然后再解碼打印出來(lái),最后把you are cool返回​客戶(hù)端。

    (6)這里有個(gè)地方?jīng)]有辦法:因?yàn)槲覀冊(cè)谝慌_(tái)電腦上做的測(cè)試,所以相當(dāng)于自言自語(yǔ),​不如在兩臺(tái)電腦上進(jìn)行試驗(yàn)。​

    二、源碼

    D33_1_ServerProgramme.py

    D33_2_ClientProgramme.py

    https://github.com/ruigege66/Python_learning/blob/master/D33_1_ServerProgramme.py

    https://github.com/ruigege66/Python_learning/blob/master/D33_2_ClientProgramme.py

    以上就是python SOCKET編程基礎(chǔ)入門(mén)的詳細(xì)內(nèi)容,更多關(guān)于python SOCKET編程的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

    您可能感興趣的文章:
    • python Socket網(wǎng)絡(luò)編程實(shí)現(xiàn)C/S模式和P2P
    • python網(wǎng)絡(luò)編程:socketserver的基本使用方法實(shí)例分析
    • python網(wǎng)絡(luò)編程socket實(shí)現(xiàn)服務(wù)端、客戶(hù)端操作詳解
    • 基于python3的socket聊天編程
    • python socket通信編程實(shí)現(xiàn)文件上傳代碼實(shí)例
    • Python 網(wǎng)絡(luò)編程之TCP客戶(hù)端/服務(wù)端功能示例【基于socket套接字】
    • Python 網(wǎng)絡(luò)編程之UDP發(fā)送接收數(shù)據(jù)功能示例【基于socket套接字】
    • python粘包問(wèn)題及socket套接字編程詳解
    • Python Socket編程詳解

    標(biāo)簽:興安盟 合肥 昭通 淘寶好評(píng)回訪 濟(jì)源 信陽(yáng) 隨州 阜新

    巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python SOCKET編程基礎(chǔ)入門(mén)》,本文關(guān)鍵詞  python,SOCKET,編程,基礎(chǔ),入門(mén),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  1. 相關(guān)文章
  2. 下面列出與本文章《python SOCKET編程基礎(chǔ)入門(mén)》相關(guān)的同類(lèi)信息!
  3. 本頁(yè)收集關(guān)于python SOCKET編程基礎(chǔ)入門(mén)的相關(guān)信息資訊供網(wǎng)民參考!
  4. 推薦文章