Python socket 詳解

來源:互聯網
上載者:User

標籤:

socket()函數用於根據指定的地址族、資料類型和協議來分配一個套介面的描述字及其所用的資源。如果協議protocol未指定(等於0),則使用預設的串連方式。對於使用一給定地址族的某一特定套介面,只支援一種協議。但地址族可設為AF_UNSPEC(未指定),這樣的話協議參數就要指定了。協議號特定於進行通訊的“通訊域”。  建立一個套介面()。#include <winsock.h>SOCKET PASCAL FAR socket( int af, int type, int protocol);af:一個地址描述。目前僅支援AF_INET格式,也就是說ARPA Internet地址格式。type:指定socket類型。新套介面的類型描述類型,如TCP(SOCK_STREAM)和UDP(SOCK_DGRAM)。常用的socket類型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等等。protocol:顧名思義,就是指定協議。套介面所用的協議。如調用者不想指定,可用0。常用的協議有,IPPROTO_TCP、IPPROTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它們分別對應TCP傳輸協議、UDP傳輸協議、STCP傳輸協議、TIPC傳輸協議。  支援下述類型描述:類型 解釋SOCK_STREAM 提供有序的、可靠的、雙向的和基於串連的位元組流,使用帶外資料傳送機制,為Internet地址族使用TCP。SOCK_DGRAM 支援不需連線的、不可靠的和使用固定大小(通常很小)緩衝區的資料報服務,為Internet地址族使用UDP。SOCK_STREAM類型的套介面為全雙向的位元組流。對於流類套介面,在接收或發送資料前必需處於已串連狀態。用connect()調用建立與另一套介面的串連,串連成功後,即可用send()和recv()傳送資料。當會話結束後,調用closesocket()。帶外資料根據規定用send()和recv()來接收。實現SOCK_STREAM類型套介面的通訊協議保證資料不會丟失也不會重複。如果終端協議有緩衝區空間,且資料不能在一定時間成功發送,則認為串連中斷,其後續的調用也將以WSAETIMEOUT錯誤返回。SOCK_DGRAM類型套介面允許使用sendto()和recvfrom()從任意連接埠發送或接收資料報。如果這樣一個套介面用connect()與一個指定連接埠串連,則可用send()和recv()與該連接埠進行資料報的發送與接收。

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.