C函數篇(socket函數)

簡述

      建立一個套接口。 #include <winsock.h> SOCKET PASCAL FAR socket( int af, int type, int protocol); af:一個地址描述。目前僅支持AF_INET格式,也就是說ARPA Internet地址格式。 type:新套接口的類型描述。 protocol:套接口所用的協議。如調用者不想指定,可用0指定,表示缺省。socket

註釋

      socket()函數用於根據指定的地址族、數據類型和協議來分配一個套接口的描述字及其所用的資源。若是協議protocol未指定(等於0),則使用缺省的鏈接方式。對於使用一給定地址族的某一特定套接口, 只支持一種協議。但地址族可設爲AF_UNSPEC(未指定),這樣的話協議參數就要指定了。協議號特定於進行通信的「通信域」。支持下述類型描述: 類 型 解釋 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()與該端口進行數據報的發送與接收。函數

相關文章
相關標籤/搜索