socket函式

socket函式是一種可用於根據指定的地址族、數據類型和協定來分配一個套接口的描述字及其所用的資源的函式

基本介紹

  • 外文名:socket函式
  • 套用:創建一個套接口
  • 領域:計算機
  • 支持格式:AF_INET格式
簡述,注釋,

簡述

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

注釋

socket()函式用於根據指定的地址族、數據類型和協定來分配一個套接口的描述字及其所用的資源。如果協定protocol未指定(等於0),則使用預設的連線方式。
對於使用一給定地址族的某一特定套接口,只支持一種協定。但地址族可設為AF_UNSPEC(未指定),這樣的話協定參數就要指定了。協定號特定於進行通訊的“通訊域”。
支持下述類型描述:
SOCK_STREAM 提供有序的、可靠的、雙向的和基於連線的位元組流,使用帶外數據傳送機制,為Internet地址族使用TCP。
SOCK_DGRAM 支持無連線的、不可靠的和使用固定大小(通常很小)緩衝區的數據報服務,為Internet地址族使用UDP。
SOCK_STREAM類型的套接口為全雙向的位元組流。對於流類套接口,在接收或傳送數據前必需處於已連線狀態。用connect()調用建立與另一套接口的連線,連線成功後,即可用send()和recv()傳送數據。當會話結束後,調用close()。帶外數據根據規定用send()和recv()來接收。
實現SOCK_STREAM類型套接口的通訊協定保證數據不會丟失也不會重複。如果終端協定有緩衝區空間,且數據不能在一定時間成功傳送,則認為連線中斷,其後續的調用也將以WSAETIMEOUT錯誤返回。
SOCK_DGRAM類型套接口允許使用sendto()和recvfrom()從任意連線埠傳送或接收數據報。如果這樣一個套接口connect()與一個指定連線埠連線,則可用send()和recv()與該連線埠進行數據報的傳送與接收。

相關詞條

熱門詞條

聯絡我們