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 パラメーターの両方に一致します。

戻り値

エラーが発生しない場合、 getservbyportservent 構造体へのポインターを返します。 それ以外の場合は null ポインターを返し、 WSAGetLastError を呼び出すことで特定のエラー番号を取得できます。

エラー コード 意味
WSANOTINITIALIZED
この関数を使用する前に、 WSAStartup 呼び出しが正常に行われる必要があります。
WSAENETDOWN
ネットワーク サブシステムが失敗しました。
WSAHOST_NOT_FOUND
権限のある応答サービスが見つかりません。
WSATRY_AGAIN
認証されていないサービスが見つからないか、サーバーに障害が発生しました。
WSANO_RECOVERY
回復不可能なエラー。サービス データベースにアクセスできません。
WSANO_DATA
有効な名前。要求された型のデータ レコードはありません。
WSAEINPROGRESS
ブロックしている Windows Sockets 1.1 呼び出しが進行中であるか、サービス プロバイダーがコールバック関数を処理しています。
WSAEFAULT
proto パラメーターは、ユーザー・アドレス・スペースの有効な部分ではありません。
WSAEINTR
WSACancelBlockingCall を使用して、Windows Socket 1.1 の呼び出しをブロックしているが取り消されました。

解説

getservbyport 関数は、getservbyname 関数と同様に、servent 構造体へのポインターを返します。

servent 構造体は、Windows ソケットによって割り当てられます。 アプリケーションは、この構造を変更したり、そのコンポーネントを解放したりしてはなりません。 さらに、この構造体のコピーはスレッドごとに 1 つだけ割り当てられるため、アプリケーションは、他の Windows ソケット関数呼び出しを発行する前に、必要な情報をコピーする必要があります。

Windows Phone 8: この関数は、Windows Phone 8 以降の Windows Phone ストア アプリでサポートされています。

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
ヘッダー winsock2.h (Winsock2.h を含む)
Library Ws2_32.lib
[DLL] Ws2_32.dll

関連項目

WSAAsyncGetServByPort

Winsock 関数

Winsock リファレンス

getservbyname