getservbyname 函式 (winsock.h)

getservbyname 函式會擷取對應至服務名稱和通訊協議的服務資訊。

語法

servent * getservbyname(
  [in] const char *name,
  [in] const char *proto
);

參數

[in] name

Null 終止服務名稱的指標。

[in] proto

Null 終止通訊協定名稱的指標。 如果這個指標是 NULL,getservbyname 函式會傳回第一個服務專案,其中 name 符合 servent 結構的s_name成員或 servent 結構的s_aliases成員。 否則, getservbyname 會比對 名稱和proto

傳回值

如果沒有發生錯誤, getservbyname 會傳回 servent 結構的指標。 否則,它會傳回 Null 指標,而且可以藉由呼叫 WSAGetLastError 來擷取特定的錯誤號碼。

錯誤碼 意義
WSANOTINITIALISED
使用這個函式之前,必須先進行成功的 WSAStartup 呼叫。
WSAENETDOWN
網路子系統失敗。
WSAHOST_NOT_FOUND
找不到授權回應服務。
WSATRY_AGAIN
找不到非授權服務,或伺服器失敗。
WSANO_RECOVERY
無法復原的錯誤,無法存取服務資料庫。
WSANO_DATA
有效名稱,沒有要求類型的數據記錄。
WSAEINPROGRESS
封鎖的 Windows Sockets 1.1 呼叫正在進行中,或服務提供者仍在處理回呼函式。
WSAEINTR
封鎖的 Windows Socket 1.1 呼叫已透過 WSACancelBlockingCall 取消。

備註

getservbyname 函式會傳回 servicent 結構的指標,其中包含名稱 (s) 和服務編號,其符合 name 參數中的字串。 所有字串都是 以 Null 結尾。

傳回的指標指向 Windows Sockets 連結庫所配置的 服務結構 。 應用程式絕對不能嘗試修改此結構,或釋放其任何元件。 此外,每個線程只會配置此結構的一個複本,因此應用程式應該先複製它所需的任何資訊,再發出任何其他 Windows Sockets 函式呼叫。

Windows Phone 8:Windows Phone 8 和更新版本上的 Windows Phone Store 應用程式支援此函式。

Windows 8.1Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 及更新版本上的 Windows 市集應用程式支援此函式。

規格需求

需求
最低支援的用戶端 Windows 8.1、Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 winsock.h (包含 Winsock2.h)
程式庫 Ws2_32.lib
Dll Ws2_32.dll

另請參閱

WSAAsyncGetServByName

Winsock 函式

Winsock 參考

getservbyport