程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Winsock API函數大全3

Winsock API函數大全3

編輯:關於C++

本系統(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 編號及通訊協定來獲得該服務的名稱、別名等。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved