getservbyport 函式 (winsock.h)

getservbyport 函式會擷取對應至埠和通訊協議的服務資訊。

語法

servent * getservbyport(
  [in] int        port,
  [in] const char *proto
);

參數

[in] port

服務埠,以網路位元組順序排列。

[in] proto

通訊協定名稱的選擇性指標。 如果這是 null,getservbyport 會傳回符合服務結構之s_port的第一個服務專案。 否則, getservbyport 會同時符合 proto 參數。

傳回值

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

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

備註

getservbyport 函式會傳回 servent 結構的指標,如同在 getservbyname 函式中所做的一樣。

服務結構是由 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

另請參閱

WSAAsyncGetServByPort

Winsock 函式

Winsock 參考

getservbyname