====== メールスロットについて ====== > **製品:** //[[ja:zoo:home|Zoo]]// > **要約:** //メールスロットの説明// ===== 概要 ===== 「メールスロット」とは、一方向のプロセス間通信(IPC)を行うメカニズムです。アプリケーションはメッセージをメールスロットに格納できます。メールスロットの所有者は、そこに格納されたメッセージを取得できます。これらのメッセージは通常ネットワークを介して1つの特定のコンピュータまたは1つの特定のドメインのすべてのコンピュータに送られます。「ドメイン」とは、1つのグループ名を共有するワークステーションやサーバーのグループです。 メールスロットは、1つのプロセスから1つまたは複数のプロセスへの送信またはブロードキャストが容易に行える方法です。1つ考慮すべき重要な点は、メールスロットはデータグラムを用いてメッセージをブロードキャストするということです。データグラムとは、ネットワークがワイヤで送信する情報の小さなパケットです。ラジオやテレビの放送のように、データグラムは受信確認を提供しません。データグラムの受信の保証はありません。ラジオやテレビの信号が、山や高い建物、干渉信号など失われる可能性があるように、何かの要因によってデータグラムが指定された送信先に届かないことも考えられます。 ===== 詳細 ===== メールスロットはメモリ内に存在する疑似ファイルであり、標準のファイル関数を用いてアクセスします。メールスロットのメッセージのデータはどのような形式でも構いません。しかし、コンピュータ間で送信する際は、424バイトより大きくてはなりません。ディスクファイルとは異なり、メールスロットは一時的なものです。メールスロットのハンドルをすべて閉じると、メールスロットとそれに含まれるデータはすべて削除されます。 「メールスロットサーバー」とは、メールスロットを作成して所有するプロセスです。メールスロットを作成したサーバーは、 メールスロットハンドルを受け取ります。このハンドルは、プロセスがメールスロットからメッセージを読み取るときに使います。メールスロットからメッセージを読み取れるのは、メールスロットを作成したプロセス(または継承などの機構によってメールスロットのハンドルを取得したプロセス)だけです。メールスロットはすべて、メールスロットを作成したプロセスにローカルです。プロセスはリモートメールスロットを作成できません。 「メールスロットクライアント」とは、メールスロットにメッセージを書き込むプロセスです。プロセスは、メールスロットの名前を知っていればそのメールスロットにメッセージを置くことができます。新しいメッセージはメールスロットにすでに存在するメッセージの後に追加されます。 メールスロットは、ドメイン内にメッセージをブロードキャストできます。ドメイン内の複数のプロセスが同じ名前のメールスロットをそれぞれ作成した場合は、そのメールスロット宛てにドメインに送られたすべてのメッセージはメールスロットを所有する各プロセスに渡されます。メールスロットを書き込み操作用に開いた時は、1つのプロセスがサーバーメールスロットハンドルとクライアントハンドルの両方を制御できるため、アプリケーションはドメイン内での簡単なメッセージ受渡し機能を容易に実装できます。 \\ ------------------------------------------------------------------------------- {{tag>Zoo_Japanese}}