WSASocket()

創建一個與指定傳送服務提供者捆綁的套接口,可選地創建和/或加入一個套接口組

此函式為socket()的擴展版本,其功能都是創建一個原始套接字。使用時需要包含

winsock2.h 頭檔案和連結ws2_32.lib庫。

基本介紹

  • 中文名:創建一個與指定傳送服務提供者捆綁的套接口
  • 外文名:WSASocket()
  • 原版:socket()
  • 頭檔案:winsock2.h 
定義,返回值,錯誤代碼,例子,另請參閱,

定義

SOCKET WSASocket (
  int af,
int type,
int protocol,
LPWSAPROTOCOL_INFO lpProtocolInfo,
GROUP g,
DWORD dwFlags
);
參數說明:
af:[in]一個地址族規範。目前僅支持AF_INET格式,亦即ARPA Internet地址格式。
type:新套接口的類型描述。
protocol:套接口使用的特定協定,如果調用者不願指定協定則定為0。
lpProtocolInfo:一個指向PROTOCOL_INFO結構的指針,該結構定義所創建套接口的特性。如果本參數非零,則前三個參數(af, type, protocol)被忽略。
g:保留給未來使用的套接字組。套接口組的標識符。
iFlags:套接口屬性描述。

返回值

若無錯誤發生,WSASocket()返回新套接口的描述字。否則的話,返回 INVALID_SOCKET,應用程式可定調用WSAGetLastError()來獲取相應的錯誤代碼。

錯誤代碼

WSANOTINITIALISED 在調用本API之前應成功調用WSAStartup()。
WSAENETDOWN 網路子系統失效。
WSAEAFNOSUPPORT 不支持指定的地址族。
WSAEINPROGRESS 一個阻塞的WinSock調用正在進行中,或者服務提供者仍在處理一個回調函式
WSAEMFILE 無可用的套接口描述字。
WSAENOBUFS 無可用的緩衝區空間。套接口無法創建。
WSAEPROTONOSUPPORT 不支持指定的協定。
WSAEPROTOTYPE 指定的協定對於本套接口類型錯誤。
WSAESOCKTNOSUPPORT 本地址族不支持指定的套接口類型。
WSAEINVAL g參數非法

例子

SOCKET s;
// 創建一個將ICMP 作為基層IP協定的原始套接字
s = WSASocket (AF_INET, SOCK_RAW, IPPROTO_ICMP , NULL, 0, WSA_FLAG_OVERLAPPED);
if ( s == INVALID_SOCKET )
{
//錯誤處理
//....
}

另請參閱

accept(), bind(), connect(), getsockname(),getsockopt(), setsockopt(), listen(), recv(),recvfrom(), select(), send(), sendto(),shutdown(), ioctlsocket().

相關詞條

熱門詞條

聯絡我們