python --- socket模組詳解

來源:互聯網
上載者:User

標籤:ufs   阻塞   進階   lag   參數   不同   訊號   有助於   aik   

 

socket常用功能函數:

  socket.socket(family=AF_INETtype=SOCK_STREAMproto=0fileno=None)                 #建立socket對象

    socket families(地址簇):

      AF_UNIX  ——————————   unix本機之間進行通訊

      AF_INET  ——————————    使用IPv4

      AF_INET6  ——————————     使用IPv6

        註:socket.socket()中第一個能使用上述值。

    socket types:

      SOCK_STREAM          # TCP通訊端類型

      SOCK_DGRAM   # UDP通訊端類型

      SOCK_RAW               #原始通訊端類型,這個通訊端比較強大,建立這種通訊端可以監聽網卡上的所有資料幀

      SOCK_RDM              #是一種可靠的UDP形式,即保證交付資料報但不保證順序。SOCK_RAM用來提供對原始協議的低級訪問,在需要執行某些特殊操作時使用,如發送ICMP報文。SOCK_RAM通常僅限於進階使用者或管理員啟動並執行程式使用。

        註:這些常量都是通訊端類型,應用於socket()函數中的第二個參數中.根據系統的不同,可能有更多的常數。(只有SOCK_STREAMSOCK_DGRAM似乎通常很有用。

    協議號通常為零,可以省略,或者在地址族為AF_CAN的情況下,協議應為CAN_RAWCAN_BCM 。如果指定fileno,則忽略其他參數,從而導致具有指定檔案描述器的通訊端返回。與socket.fromfd()不同,fileno將返回相同的通訊端,而不是重複。這可能有助於使用socket.close()關閉分離的通訊端,一般情況下後兩個參數忽略即可

   socket.bind(address)                                 #將socket綁定到地址(常用於服務端)

      address地址的格式取決於地址族, 在AF_INET下,以元組(host,port)的形式表示地址。

   socket.listen([backlog])                       #啟用伺服器以接受串連(常用於服務端)

      backlog >=0,指定系統在拒絕新串連之前將允許的未接受串連的數量。如果未指定,則選擇預設的合理值。

   socket.accept()                      #接收一個串連.該socket 必須要綁定一個地址和監聽串連.傳回值是一對(conn,address)。(常用於服務端)

      conn是socket對象,可以在該串連上發送和接收資料,address是串連另一端的地址。

   socket.recv(bufsize[, flags])                   #從socket接收資料,傳回值是一個代表所收到的資料的位元組對象。

      一次性接收的最大資料量由bufsize指定, 參數flags通常忽略。

   socket.send(data[, flags])                  #將資料發送到socket。

      python3中只能發送bytes類型的資料。

   socket.connect(address)              #串連到遠程socket(常用於用戶端)

      如果串連被訊號中斷,則該方法等待直到串連完成,或者如果訊號處理常式沒有引發異常並且通訊端正在阻塞或者已經阻塞,則在逾時時引入socket.timeout逾時。對於非阻塞通訊端,如果串連被訊號中斷(或由訊號處理常式引發的異常),則該方法引發InterruptedError異常。

   socket.close()             #關閉socket

      註:被調用後,串連斷開,socket不能在發送資料,串連另一端也將不在接收資料。

 

python --- socket模組詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.