getservbyport 関数 (winsock2.h)
getservbyport 関数は、ポートとプロトコルに対応するサービス情報を取得します。
構文
servent *WSAAPI getservbyport(
[in] int port,
[in] const char *proto
);
パラメーター
[in] port
サービスのポート (ネットワークのバイト順)。
[in] proto
プロトコル名への省略可能なポインター。 これが null の場合、getservbyport は、ポートが servent 構造体のs_portと一致する最初のサービス エントリを返します。 それ以外の場合、 getservbyport は ポート と proto パラメーターの両方に一致します。
戻り値
エラーが発生しない場合、 getservbyport は servent 構造体へのポインターを返します。 それ以外の場合は null ポインターを返し、 WSAGetLastError を呼び出すことで特定のエラー番号を取得できます。
エラー コード | 意味 |
---|---|
この関数を使用する前に、 WSAStartup 呼び出しが正常に行われる必要があります。 | |
ネットワーク サブシステムが失敗しました。 | |
権限のある応答サービスが見つかりません。 | |
認証されていないサービスが見つからないか、サーバーに障害が発生しました。 | |
回復不可能なエラー。サービス データベースにアクセスできません。 | |
有効な名前。要求された型のデータ レコードはありません。 | |
ブロックしている Windows Sockets 1.1 呼び出しが進行中であるか、サービス プロバイダーがコールバック関数を処理しています。 | |
proto パラメーターは、ユーザー・アドレス・スペースの有効な部分ではありません。 | |
WSACancelBlockingCall を使用して、Windows Socket 1.1 の呼び出しをブロックしているが取り消されました。 |
解説
getservbyport 関数は、getservbyname 関数と同様に、servent 構造体へのポインターを返します。
servent 構造体は、Windows ソケットによって割り当てられます。 アプリケーションは、この構造を変更したり、そのコンポーネントを解放したりしてはなりません。 さらに、この構造体のコピーはスレッドごとに 1 つだけ割り当てられるため、アプリケーションは、他の Windows ソケット関数呼び出しを発行する前に、必要な情報をコピーする必要があります。
Windows Phone 8: この関数は、Windows Phone 8 以降の Windows Phone ストア アプリでサポートされています。
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 |
ヘッダー | winsock2.h (Winsock2.h を含む) |
Library | Ws2_32.lib |
[DLL] | Ws2_32.dll |