Winsock API 函数大全 3
本系统(WinKing)提供之 Windows Sockets API 介面乃是依照 1993年1月20日公布之 WINSOCK 第1.1版(如附录)中所定义之函式 (routine); 包括了30个Berkeley Software Distribution (BSD) 的函式以及16个符合 Windows Message-driven 特性的函式。
(21) setsockopt():设定 Socket 的状态。
格式: int PASCAL FAR setsockopt( SOCKET s,int level,int optname,const char FAR *optval,int optlen );
参数: s Socket 的识别码,level 选项设定的 level,optname 选项名称,optval 选项的设定值,optlen 选项设定值的长度
传回值: 成功 - 0
失败 - SOCKET_ERROR (呼叫 WSAGetLastError() 可得知原因)
说明: 此函式用来设定 Socket 的一些选项,藉以更改其动作。
可更改的选项有: (参见WINSOCK第1.1版54页)
Value Type
-----------------------------------------------
SO_BROADCAST BOOL
*SO_DEBUG BOOL
SO_DONTLINGER BOOL
*SO_DONTROUTE BOOL
*SO_KEEPALIVE BOOL
SO_LINGER struct linger FAR*
SO_OOBINLINE BOOL
*SO_RCVBUF int
SO_REUSEADDR BOOL
*SO_SNDBUF int
TCP_NODELAY BOOL
(22) shutdown():停止 Socket 接收/传送的功能。
格式: int PASCAL FAR shutdown( SOCKET s, int how );
参数: s Socket 的识别码,how 代表该停止那些动作的标帜
传回值: 成功 - 0
失败 - SOCKET_ERROR (呼叫 WSAGetLastError()可得知原因)
说明: 此函式用来停止 Socket 的後续接收或传送的功能。
若 how 的值为 0,则不再接收资料。
若 how 的值为 1,则不再允许传送资料。
若 how 的值为 2,则不再接收且不再传送资料。
shutdown() 函式并没有将 Socket 关闭,所以该 Socket 所占用之资源必须在呼叫closesocket() 之後才会释放。
(23) socket():建立Socket。
格式: SOCKET PASCAL FAR socket( int af,int type,int protocol );
参数: af 目前只提供 PF_INET(AF_INET),type Socket 的型态 (SOCK_STREAM、SOCK_DGRAM),protocol 通讯协定(如果使用者不指定则设为0)
传回值: 成功 - Socket 的识别码
失败 - INVALID_SOCKET(呼叫 WSAGetLastError() 可得知原因)
说明: 此函式用来建立一 Socket,并为此 Socket 建立其所使用的资源。
Socket 的型态可为 Stream Socket 或 Datagram Socket。
(24) gethostbyaddr():利用某一 host 的位址来获取该 host 的资料。
格式: struct hostent FAR * PASCAL FAR gethostbyaddr( const char FAR *addr, int len, int type );
参数: addr network 排列方式的位址,len addr 的长度,type PF_INET(AF_INET)
传回值: 成功 - 指向 struct hostent 的指标
struct hostent
{
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
}
失败 - NULL (呼叫 WSAGetLastError() 可得知原因)
说明: 此函式是利用位址来获取 host的其他资料,如 host 的名称、别名,位址的型态、长度等。
(25) gethostbyname():利用某一 host 的名称来获取该 host 的资料。
格式: struct hostent FAR * PASCAL FAR gethostbyname( const char FAR *name );
参数: name host 的名称
传回值: 成功 - 指向 struct hostent 的指标
struct hostent
{
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
}
失败 - NULL (呼叫 WSAGetLastError() 可得知原因)
说明: 此函式是利用 host 名称来获取其他的资料,如 host 的位址、别名,位址的型态、长度等。
(26) gethostname():获取目前使用者使用的 host 的名称。
格式: int PASCAL FAR gethostname( char FAR *name, int namelen );
参数: name 用来存放 host 名称的暂存区,namelen name 的大小
传回值: 成功 - 0
失败 - SOCKET_ERROR (呼叫 WSAGetLastError() 可得知原因)
说明: 此函式用来获取 host 的名称。
(27) getprotobyname():依照通讯协定 (protocol) 的名称来获取该通讯协定的其他资料。
格式: struct protoent FAR * PASCAL FAR getprotobyname( const char FAR *name );
参数: name 通讯协定名称
传回值: 成功 - 一指向 struct protoent 的指标
struct protoent
{
char FAR * p_name;
char FAR * FAR * p_aliases;
short p_proto;
}
失败 - NULL (呼叫 WSAGetLastError() 可得知原因)
说明: 利用通讯协定的名称来得知该通讯协定的别名、编号等资料。
(28) getprotobynumber():依照通讯协定的编号来获取该通讯协定的其他资料。
格式: struct protoent FAR * PASCAL FAR getprotobynumber( int number );
参数: number 以 host 排列方式的通讯协定编号
传回值: 成功 - 一指向 struct protoent 的指标
struct protoent
{
char FAR * p_name;
char FAR * FAR * p_aliases;
short p_proto;
}
失败 - NULL (呼叫 WSAGetLastError() 可得知原因)
说明: 利用通讯协定的编号来得知该通讯协定的名称、别名等资料。
(29) getservbyname():依照服务 (service) 名称及通讯协定来获取该服务的其他资料。
格式: struct servent * PASCAL FAR getservbyname( const char FAR *name, const char FAR *proto );
参数: name 服务名称,proto 通讯协定名称
传回值: 成功 - 一指向 struct servent 的指标
struct servent
{
char FAR * s_name;
char FAR * FAR * s_aliases;
short s_port;
char FAR * s_proto;
}
失败 - NULL (呼叫 WSAGetLastError() 可得知原因)
说明: 利用服务名称及通讯协定来获得该服务的别名、使用的port编号等。
(30) getservbyport():依照服务 (service) 的 port 编号及通讯协定来获取该服务的其他资料。
格式: struct servent * PASCAL FAR getservbyport( int port, const char FAR *proto );
参数: port 服务的 port 编号,proto 通讯协定名称,传回值: 成功 - 一指向 struct servent 的指标
struct servent
{
char FAR * s_name;
char FAR * FAR * s_aliases;
short s_port;
char FAR * s_proto;
}
失败 - NULL (呼叫 WSAGetLastError() 可得知原因)
说明: 利用 port 编号及通讯协定来获得该服务的名称、别名等。
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论