Winsock API函数大全3
当前位置:以往代写 > C/C++ 教程 >Winsock API函数大全3
2019-06-13

Winsock API函数大全3

Winsock API函数大全3

副标题#e#

本系统(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,则不再答允传送资料。


#p#副标题#e#

若 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 );

#p#副标题#e#

参数: 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 分列方法的通讯协定编号

#p#副标题#e#

传回值: 乐成 – 一指向 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 编号及通讯协定来得到该处事的名称、别名等。

    关键字:

在线提交作业