目次 - SDL_net 3.0 - NET_GetAddressBytes

NET_GetAddressBytes

解決したアドレスからネットワークアドレスのプロトコルレベルのバイト列を得る

ヘッダ

SDL3_net/SDL_net.h

構文

const void * NET_GetAddressBytes(NET_Address *address, int *num_bytes);

引数

NET_Address *address問い合わせるNET_Addressオブジェクト
int *num_bytes戻されたバイト列のバイト数の代入先へのポインタ

戻り値

(const void *) バイト列へのポインタを戻す. エラーのときNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

このデータは人が読むことができるものではなく, プロトコル依存で, さらに特定のバイト順でない場合もある.

恐らくこれが役立つのは, ゲーム中のユーザとアドレスを対応付けるハッシュを作成する場合や, システムレベルのネットワークAPIを扱う(これは推奨しない. 自身の責任で行うこと)場合のみである.

値の形式が変わらない保証はないため, この値を将来実行するプログラムのために保持してはならない.

戻された*num_bytesはアドレスのバイト数である. データはNUL終端ではないため, このサイズがデータのバイト数を知る唯一の手段である. そのため, この引数にNULLを渡すことはできない.

戻されたデータの解放や変更を行おうとしてはならない. これはNET_Addressに属していて, オブジェクトが有効な間はこのデータも有効である. 必要な間はアドレスの参照を保持するか, バイト列をコピーすること.

解決が完了していない場合や, 解決に失敗している場合は, この関数はNULLを戻す. この関数を使用する前にNET_GetAddressStatus()やNET_WaitUntilResolved()を使用すれば確実に解決を完了できる.

人が読むことができるアドレスはNET_GetAddressString()で得られる. これは無編集のバイト列を得るよりも非効率なことはない.

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

バージョン

SDL_net 3.0.0以降

関連項目

SDL Wikiへのリンク

SDL3_net/NET_GetAddressBytes