请输入您要查询的百科知识:

 

词条 WSASocket()
释义

简述

创建一个与指定传送服务提供者捆绑的套接口,可选地创建和/或加入一个套接口组。

此函数为socket()的扩展版本,其功能都是创建一个原始套接字。使用时需要包含

winsock2.h 头文件和链接wsock32.lib库。

定义

SOCKET WSAAPI WSASocket ( int af, int type, int protocol, LPPROTOCOL_INFO lpProtocolInfo, Group g, int iFlags);

af:地址族描述。目前仅支持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, NULL, 0, WSA_FLAG_OVERLAPPED);

if ( s == INVALID_SOCKET )

{

//错误处理

//....

}

另请参阅

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

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/11 8:32:22