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 來擷取特定錯誤號碼。
錯誤碼 | 意義 |
---|---|
使用此函式之前,必須先進行成功的 WSAStartup 呼叫。 | |
網路子系統失敗。 | |
找不到授權回應服務。 | |
找不到非授權服務,或伺服器失敗。 | |
無法復原的錯誤,無法存取服務資料庫。 | |
有效名稱,沒有要求類型的數據記錄。 | |
封鎖的 Windows Sockets 1.1 呼叫正在進行中,或者服務提供者仍在處理回呼函式。 | |
proto 參數不是用戶位址空間的有效部分。 | |
封鎖的 Windows Socket 1.1 呼叫已透過 WSACancelBlockingCall 取消。 |
備註
getservbyport 函式會傳回 servent 結構的指標,如同在 getservbyname 函式中所做的一樣。
服務結構是由 Windows Sockets 所配置。 應用程式絕對不能嘗試修改此結構,或釋放其任何元件。 此外,每個線程只會配置此結構的一個複本,因此應用程式應該先複製它所需的任何資訊,再發出任何其他 Windows Sockets 函式呼叫。
Windows Phone 8:Windows Phone 8 和更新版本上的 Windows Phone Store 應用程式支援此函式。
Windows 8.1 和 Windows 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 |