#include <winsock.h>
SOCKET PASCAL FAR socket( int af, int type, int protocol);
af:一个地址描述。目前仅支持AF_INET格式,也就是说ARPA Internet地址格式。
type:指定socket类型。新
套接口的类型描述类型,如TCP(SOCK_STREAM)和UDP(SOCK_DGRAM)。常用的socket类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等等。
protocol:顾名思义,就是指定协议。
套接口所用的协议。如调用者不想指定,可用0。常用的协议有,IPPROTO_TCP、IPPROTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议。
支持下述类型描述:
类型 解释
SOCK_STREAM 提供有序的、可靠的、双向的和基于连接的
字节流,使用
带外数据传送机制,为Internet地址族使用TCP。
SOCK_DGRAM 支持无连接的、不可靠的和使用固定大小(通常很小)缓冲区的
数据报服务,为Internet地址族使用UDP。
SOCK_STREAM类型的套接口为全双向的
字节流。对于流类套接口,在接收或发送数据前必需处于已连接状态。用
connect()调用建立与另一套接口的连接,连接成功后,即可用
send()和recv()传送数据。当会话结束后,调用closesocket()。
带外数据根据规定用
send()和recv()来接收。
实现SOCK_STREAM类型
套接口的通讯协议保证数据不会丢失也不会重复。如果终端协议有缓冲区空间,且数据不能在一定时间成功发送,则认为连接中断,其后续的调用也将以WSAETIMEOUT错误返回。