簡述
返回對應於給定協定號的相關協定信息。
#include <winsock.h>
struct protoent FAR * PASCAL FAR getprotobynumber(int number);
number:一個以主機順序排列的協定號。
注釋
getprotobynumber()返回對應於給定協定名的包含名字和協定號的protoent結構指針。結構的聲明與getprotobyname中的一致。
返回的指針指向一個由Windows Sockets實現分配的結構。應用程式不應該試圖修改這個結構或者釋放它的任何部分。此外,每一執行緒僅有一份這個結構的拷貝,所以應用程式應該在發出其他Windows Scokets API調用前,把自己所需的信息拷貝下來。
返回值:
如果沒有錯誤發生,getprotobynumber()返回如上所述的一個指向protoent結構的指針,否則,返回一個空指針。應用程式可以通過WSAGetLastError()來得到一個特定的錯誤代碼。
錯誤代碼:
WSANOTINTIALISED在套用這個API前,必須成功地調用WSAStartup()。
WSAENTDOWN Windows Sockets實現檢測到了網路子系統的錯誤。
WSANO_RECOVERY 無法恢復的錯誤,FORMERR,REFUSED,NOTIMP。
WSANO_DATA 有效的名字,但沒有關於請求類型的數據記錄。
WSAEINPROGRESS 一個阻塞的Windows Sockets操作正在進行。
WSAEINTR 阻塞調用被WSACancelBlockingCall()取消了.
參見: WSAAsyncGetProtoByNumber(), getprotobyname()