送受信操作では、システムコールのパラメータとして以下に示す各種情報を指定します。
所定のパラメータを選択して実行するとシステムコールを発行します。
受信データは保存することができ、後から Data Manager で参照できます。詳細は、第7章 Data Manager を参照してください。
recvfrom(2) または recvmsg(2) を使用する場合は、送信元アドレスを取得するかどうかを指定します。
送信するデータ内容は以下の中から選択します。なお、カスタムデータは事前に Data Manager で作成・登録する必要があります。詳細は、第7章 Data Manager を参照してください。
データ内容 | 詳細 |
---|---|
カスタムデータ | ユーザーが自由に指定可能 |
All "0" の ASCII 文字列 | 00000000... |
連続した数値の ASCII 文字列 | 01234567890123456789... |
ランダムな数値の ASCII 文字列 | 0-9 のランダム値 |
ランダムなアルファベットと数値の ASCII 文字列 | 0-9a-zA-Z のランダム値 |
印字可能でランダムな ASCII 文字列 | 0-9a-zA-Z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ のランダム値 |
All 0 のバイナリデータ | 0x00 0x00 0x00 0x00 ... |
All 1 のバイナリデータ | 0xff 0xff 0xff 0xff ... |
ランダムなバイナリデータ | 0x00-0xff のランダム値 |
[補足]
本来、sendmsg(2) および recvmsg(2) では複数のデータまたはバッファーを指定できます。
しかし、現在のバージョンでは、単一のデータおよびバッファーのみ指定できます。
Level Type | 説明 | Send | Recv |
---|---|---|---|
SOL_SOCKET SCM_RIGHTS | ファイルディスクリプターのリスト(32 ビット整数の配列データ)を UNIX ドメインソケットを通して渡す/受け取る | ||
SOL_SOCKET SCM_TIMESTAMP | タイムスタンプ(timeval 構造体データ)を受け取る | ||
SOL_SOCKET SCM_CREDS | プロセスの認証情報(cmsgcred 構造体データ)を UNIX ドメインソケットを通して渡す/受け取る | ||
SOL_SOCKET SCM_TIMESTAMP_MONOTONIC | モノトニッククロックのタイムスタンプを受け取る | ||
IPPROTO_IP IP_RECVOPTS | 到着した全ての IP オプションを受け取る | ||
IPPROTO_IP IP_RECVRETOPTS | 応答のための IP オプションを受け取る | ||
IPPROTO_IP IP_RECVDSTADDR | 送信先 IP アドレスを受け取る | ||
IPPROTO_IP IP_RETOPTS | IP オプション情報(ip_opts 構造体データ)を指定して送信する/受け取る | ||
IPPROTO_IP IP_RECVIF | 受信データグラムのインターフェース情報(sockaddr_dl 構造体データ)を受け取る | ||
IPPROTO_IP IP_RECVTTL | TTL(8 ビット整数)を受け取る | ||
IPPROTO_IP IP_PKTINFO | 到着パケットに関する情報(ip_pktinfo 構造体データ)を指定して送信する/受け取る | ||
IPPROTO_IP IP_RECVTOS | TOS(8 ビット整数)を受け取る |
フラグ | 説明 | Send | Recv | Msg |
---|---|---|---|---|
MSG_OOB | OOB(out-of-band: 帯域外)データを送信する / OOB データの受信を要求する / OOB データを受信したことを示す | |||
MSG_DONTROUTE | 直接接続されているネットワーク上のホストのみに送信する | |||
MSG_PEEK | 受信キューからデータを削除せずにデータを返すことを要求する | |||
MSG_WAITALL | 要求いっぱいのデータ到着まで操作を停止するよう要求する | |||
MSG_TRUNC | データがバッファーより大きかったためデータ末端部分が破棄されたことを示す | |||
MSG_CTRUNC | 補助データ用のバッファー不足により制御データの一部が破棄されたことを示す |