WSASocket端API

创建一个与制定传送服务提供者绑定的套接口

此函数为socket()的扩展版本,其功能都是创建一个原始 套接字。使用时需要包含
winsock2.h 头文件和链接ws2_32.lib库。

SOCKET WSASocket(
  _In_ int                af,//地址族规范,目前仅支持AF_INET格式
  _In_ int                type,//套接口类型,SOCK_STREAM:TCP  SOCK_DGRAM:UDP
  _In_ int                protocol, //特定协议,若不愿指定协议,可以规定为0
  _In_ LPWSAPROTOCOL_INFO lpProtocolInfo,  //指向结构的 指针,定义创建接口的特性,若非零,则前三个参数忽略。
  _In_ GROUP              g,   //保留
  _In_ DWORD              dwFlags  //套接口属性描述
);
对应closesocket(...);

返回值:成功返回描述符参照;失败返回INVALID_SOCKET


WSAEVENT WSACreateEvent(void);
创建一个初始状态为失信的匿名的需要手动重置的事件对象

返回值:成功返回事件对象的句柄;失败返回WSA_INVALID_EVENT


int WSAEventSelect(
  _In_ SOCKET   s,
  _In_ WSAEVENT hEventObject,
  _In_ long     lNetworkEvents
);
//关联网络事件到事件句柄

其实调用该函数就是要告诉系统,如果有FD_ACCEPT事件发生的时候,就要让hWSAevent对象有信号。因为我们知道,一个事件对象有两种状态:有信号和无信号,而创建的时候默认的是无信号的,也是在无信号的情况下,我们的等待函数才会被阻塞(也就是为什么会采用该机制的原因了)。而当发生事件FD_ACCEPT(或其它如FD_READ、FD_WRITE、FD_CLOSE等)时让事件对象有信号,从而让等待函数被唤醒



让本地地址和socket相连接

int bind(
  _In_ SOCKET                s,
  _In_ const struct sockaddr *name,   //一个socket地址的结构体名,有sin_port  sin_family  sin_addr
  _In_ int                   namelen 结构体名的长度,一般为sizeof()
);

返回失败的话为SOCKET_ERROR


listen是让一个置信的对象监听到来的连接

int listen(
  _In_ SOCKET s,
  _In_ int    backlog  //编译的最大长度连接
);
返回失败的话也为SOCKET_ERROR

If no error occurs, listen returns zero. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError.


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值