(57)【要約】【課題】  ブロードキャスト・マルチキャストがブロックされる状況でも、アドレスが変更した機器の検出を可能にする。効率的にブロードキャスト・マルチキャストの可否を判定する。ブロードキャスト・マルチキャストの可否に応じて、機器検出を効率よく行う。【解決手段】  ブロードキャスト・マルチキャストを用いた第１の検出手段に加え、宛先アドレスを変化させたユニキャスト送信の繰り返しを用いた第２の検出手段を用いて、機器検出を行う。ユニキャスト通信を正常に行える時に、第１の検出手段を試みることにより、その時点でのブロードキャスト・マルチキャストの可否を判定する。また、可否判定の結果により、第１、第２の検出手段を選択する、または第１、第２の検出手段の順序を切り替える。【選択図】  図７
2006340286.tif 000002
【特許請求の範囲】
【請求項１】
情報通信処理装置において、
ブロードキャストまたはマルチキャストを用いて所望の機器を検出する第１の検出手段と、
宛先のアドレスを変化させたユニキャスト送信の繰り返しを用いて所望の機器を検出する第２の検出手段を有し、
第１および第２の検出手段を用いて所望の機器の検出を行うことを特徴とする情報通信装置。
【請求項２】
前記第１の検出手段による所望の機器の検出結果に応じて、第２の検出手段による所望の機器の検出処理を行うことを特徴とする請求項１に記載の情報通信装置。
【請求項３】
前記第２の検出手段による所望の機器の検出結果に応じて、第１の検出手段による所望の機器の検出処理を行うことを特徴とする請求項１に記載の情報通信装置。
【請求項４】
前記第１の検出手段または前記第２の検出手段による所望の機器の検出結果に応じて、前記所望の機器のアドレスを更新する更新手段を有することを特徴とする請求項１乃至３に記載の情報通信装置。
【請求項５】
前記更新手段は、前記ブロードキャストまたはマルチキャストあるいは前記ユニキャストに対する応答に含まれる情報に基づいて、前記所望の機器のアドレスを更新することを特徴とする請求項４に記載の情報通信装置。
【請求項６】
前記第１の検出手段及び第２の検出手段は、ブロードキャストまたはマルチキャストあるいは前記ユニキャストに対する応答に含まれる機器固有情報に基づいて、所望の機器を検出することを特徴とする請求項１乃至５に記載の情報通信装置。
【請求項７】
前記第２の検出手段は、宛先のアドレスを所定範囲内で変化させ、ユニキャスト送信を繰り返すことを特徴とする請求項１乃至６に記載の情報通信装置。
【請求項８】
前記所定範囲内とは、基準アドレスの前後一定数であることを特徴とする請求項７に記載の情報通信装置。
【請求項９】
情報通信装置において、
ユニキャストを用いた通信の際に、ブロードキャストまたはマルチキャストを用いた通信を行う通信手段と、
前記通信手段によりブロードキャストまたはマルチキャストに対する応答の有無により、ブロードキャストまたはマルチキャストの可否を判定する判定手段と、
を有することを特徴とする情報通信装置。
【請求項１０】
前記判定手段は、前記応答を検出できない場合に、ブロードキャストまたはマルチキャストが不可能であると判定することを特徴とする請求項９に記載の情報通信装置。
【請求項１１】
前記判定手段は、ブロードキャストまたはマルチキャストに対する応答を所定回数検出した場合に、ブロードキャストまたはマルチキャストが可能であると判定することを特徴とする請求項９に記載の情報通信装置。
【請求項１２】
ブロードキャストまたはマルチキャストを用いて所望の機器を検出する第１の検出手段と、
宛先のアドレスを変化させたユニキャスト送信の繰り返しを用いて所望の機器を検出する第２の検出手段と、を有し、
前記判定手段の判定結果に応じて、前記第１の検出手段または前記第２の検出手段による所望の機器の検出処理を行うことを特徴とする請求項９乃至１１に記載の情報通信装置。
【請求項１３】
情報通信処理装置において、
ブロードキャストまたはマルチキャストを用いて所望の機器を検出する第１の検出手段と、
宛先のアドレスを変化させたユニキャスト送信の繰り返しを用いて所望の機器を検出する第２の検出手段と、
ブロードキャストまたはマルチキャストが可能か否かを示す情報を記憶する記憶手段と、
前記記憶手段に記憶したブロードキャストまたはマルチキャストの可否を示す情報に応じて、前記第１の検出手段または前記第２の検出手段による検出を選択する選択手段を有することを特徴とする情報通信装置。
【請求項１４】
ブロードキャストまたはマルチキャストが可能か否かを判定手段を有し、
前記記憶手段には、前記判定手段による判定結果を記憶することを特徴とする請求項１３に記載の情報通信装置。
【請求項１５】
前記選択手段は、前記第１の検出手段または前記第２の検出手段による検出結果に応じて、他方の検出手段による検索を選択することを特徴とする請求項１３または１４に記載の情報通信装置。
【請求項１６】
情報通信処理装置において、
ブロードキャストまたはマルチキャストを用いて所望の機器のアドレスを判別する第１の判別手段と、
宛先のアドレスを変化させたユニキャスト送信の繰り返しを用いて所望の機器のアドレスを判別する第２の判別手段と、
ネットワーク環境を判別する第３の判別手段と、
前記第３の判別手段による判別に応じて、前記第１または第２の判別手段のいずれかによる判別を実行する実行手段と、
を有することを特徴とする情報通信装置。
【請求項１７】
前記実行手段は、前記第１または第２の判別手段のいずれかによる判別結果に応じて、他方の判別手段により判別を実行することを特徴とする請求項１６に記載の情報通信装置。
【請求項１８】
請求項１乃至１７に記載の情報通信装置を有する通信システム。
【請求項１９】
機器検出方法であって、
ブロードキャスト・マルチキャストを用いて所望の機器を検出する第１の検出工程と、
宛先のアドレスを変化させたユニキャスト送信の繰り返しを用いて所望の機器を検出する第２の検出工程と、
前記第１の検出工程による所望の機器の検出処理及び前記第２の検出工程による所望の機器の検出処理により、所望の機器の検出を行うことを特徴とする機器検出方法。
【請求項２０】
ブロードキャストまたはマルチキャストの可否判定方法であって、
ユニキャストを用いた通信の際に、ブロードキャストまたはマルチキャストを用いた通信を行い、該ブロードキャストまたはマルチキャストに対する応答の有無により、ブロードキャストまたはマルチキャストの可否を判定することを特徴とするブロードキャスト・マルチキャストの可否判定方法。
【請求項２１】
機器検出方法であって、
ブロードキャストまたはマルチキャストが可能か否かに応じて、所望の機器の検出を、第１の検出方法または第２の検出方法により選択的に行うことを特徴とする機器検出方法。
【請求項２２】
アドレス判別方法であって、
ブロードキャストまたはマルチキャストを用いて所望の機器のアドレスを判別する第１の判別工程と、
宛先のアドレスを変化させたユニキャスト送信の繰り返しを用いて所望の機器のアドレスを判別する第２の判別工程と、
ネットワーク環境を判別する第３の判別工程と、を有し、
前記第３の判別工程における判別に応じて、前記第１または第２の判別工程のいずれかによる判別を実行することを特徴とするアドレス判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報通信装置、システム、および方法に関する。
【背景技術】
【０００２】
一般家庭にもローカルエリア・ネットワーク（ＬＡＮ）が普及し、印刷装置のような電子機器を、ＬＡＮを介して複数のコンピュータで共用するようになって来た。
【０００３】
家庭におけるＬＡＮは、イーサネット（登録商標）ないし無線ＬＡＮで構成され、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いるのが一般的である。
【０００４】
ＴＣＰ／ＩＰでは、各機器をＩＰアドレスにより特定し、通信を行う。しかし、アドレスの割り当てにはネットワークに関する知識を必要とし、知識をもたない一般ユーザには難しいものであった。
【０００５】
そのため、一般家庭においては、ＬＡＮをインターネットに接続するルータがＤＨＣＰサーバ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  サーバ）機能を持ち、この機能により接続機器にＩＰアドレスを自動的に割り当てるようにするのが一般的である。ＤＨＣＰサーバは動的にＩＰアドレスを割り当てるため、接続機器は起動のたびに必ずしも同じアドレスを割り当てられるわけではない。
【０００６】
ところで、ホスト機器であるコンピュータから、印刷装置のような電子機器を利用する場合には、コンピュータは電子機器のＩＰアドレスを記憶し、そのＩＰアドレス宛てにデータを送信し通信を行う。このとき、電子機器に、コンピュータが記憶しているＩＰアドレスと異なるアドレスが割り当てられると、コンピュータは電子機器と通信するための宛先がわからず、通信を行うことができなくなってしまう。
【０００７】
この問題を解決するためには、コンピュータが記憶している電子機器のＩＰアドレス宛てに通信ができない場合に、不特定の相手にパケットを送信するブロードキャストまたはマルチキャストを用いて所望の機器の検出を行う方法がある。この方法は、コンピュータが、機器のＩＰアドレスという可変な値と、例えばＭＡＣアドレスのような機器固有の値とを記憶しておき、ＩＰアドレスの問合せをブロードキャストする。この問合せを受信した機器は、応答の中に固有値（ＭＡＣアドレス）を含めて応答を返す。応答を受信した機器は、記憶してある固有値と応答に含まれる固有値を比較し、応答を返した機器が所望の機器かどうかを確認する方法である。また、応答にＩＰアドレスを含めることにより、所望の機器のＩＰアドレスを確認することもできる。
【０００８】
ＤＨＣＰサーバが動的にＩＰアドレスを割り当てる環境で、ネットワークに接続したプリンタ等の周辺装置を自動的に認識する例としては以下のものがある。
【０００９】
例えば特許文献１には、サービスロケーションプロトコル（ＳＬＰ）を用いてプリンタ情報を取得する例が記載されている。
【００１０】
例えば特許文献２には、ネットワークに接続したプリンとサーバがＤＨＣＰサーバとなる例が記載されている。
【００１１】
例えば特許文献３には、ＩＰアドレスとＭＡＣアドレスの組み合わせの変化を認識する例が記載されている。
【特許文献１】特開２０００−０３３７５５号公報
【特許文献２】特開２００２−００７０９１号公報
【特許文献３】特開２００４−０４８４６２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
近年、セキュリティ意識の高まりに伴い、家庭用のコンピュータにおいてもファイアウォール・ソフトウェアが普及している。ファイアウォールはコンピュータのネットワーク通信を監視し、通信を制限することにより、外部からの不正アクセスや、不正なホストへの接続を防止するものである。
【００１３】
ところで、ブロードキャストやマルチキャストは不特定のホスト宛てに送信されるので、ファイアウォール・ソフトウェアの設定によっては、コンピュータがブロードキャストやマルチキャストを用いて通信することを制限する場合がある。具体的には、例えば、アプリケーションが送信したブロードキャストリクエストに対する応答が、ファイアウォールによりブロックされてアプリケーションに届かなくなる。
【００１４】
このような状況では、ＤＨＣＰサーバにより以前と異なるアドレスを割り当てられた電子機器をブロードキャスト・マルチキャストを用いて検出することができない。
【００１５】
また、ファイアウォール・ソフトウェアは、オペレーティングシステムに標準で付属するのものや、サードパーティー製のものが、多種多様に存在し、他のアプリケーションからその設定を知る一般的な方法は存在しない。したがって、ファイアウォールがブロードキャスト・マルチキャストを使えない設定になっていても、アプリケーションはそれを知ることができない。つまり、ブロードキャスト・マルチキャストで送信したリクエストに対する応答を受信できなかった場合に、相手の機器が、電源が投入されていないなど、ネットワークに接続していないために応答を受信できなかったのか、ファイアウォールにブロックされて応答を受信できなかったのかを区別することができない。
【００１６】
本発明は、これらの課題に鑑み、ブロードキャストまたはマルチキャストが使えない状況でも、機器の検出を可能にすることを目的とする。
【００１７】
また、効率良くブロードキャストまたはマルチキャストの可否を判定できるようにすることを目的とする。
【００１８】
または、ブロードキャストまたはマルチキャストの可否判定の結果を使って、機器検出を効率よく行えるようにすることを目的とする。
【課題を解決するための手段】
【００１９】
本発明は、情報通信処理装置において、ブロードキャストまたはマルチキャストを用いて所望の機器を検出する第１の検出手段と、宛先のアドレスを変化させたユニキャスト送信の繰り返しを用いて所望の機器を検出する第２の検出手段を有し、第１および第２の検出手段を用いて所望の機器の検出を行うことを特徴とする情報通信装置を提供する。
【００２０】
また、情報通信装置において、ユニキャストを用いた通信の際に、ブロードキャストまたはマルチキャストを用いた通信を行う通信手段と、前記通信手段によりブロードキャストまたはマルチキャストに対する応答の有無により、ブロードキャストまたはマルチキャストの可否を判定する判定手段と、を有することを特徴とする情報通信装置を提供する。
【００２１】
また、情報通信処理装置において、ブロードキャストまたはマルチキャストを用いて所望の機器を検出する第１の検出手段と、宛先のアドレスを変化させたユニキャスト送信の繰り返しを用いて所望の機器を検出する第２の検出手段と、ブロードキャストまたはマルチキャストが可能か否かを示す情報を記憶する記憶手段と、前記記憶手段に記憶したブロードキャストまたはマルチキャストの可否を示す情報に応じて、前記第１の検出手段または前記第２の検出手段による検出を選択する選択手段を有することを特徴とする情報通信装置を提供する。
【００２２】
また、情報通信処理装置であって、ブロードキャストまたはマルチキャストを用いて所望の機器のアドレスを判別する第１の判別手段と、宛先のアドレスを変化させたユニキャスト送信の繰り返しを用いて所望の機器のアドレスを判別する第２の判別手段と、ネットワーク環境を判別する第３の判別手段と、前記第３の判別手段による判別に応じて、前記第１または第２の判別手段のいずれかによる判別を実行する実行手段と、を有することを特徴とする情報通信装置を提供する。
【００２３】
また、上記情報通信装置を有するシステム及び上記情報通信装置による機器検出方法、ブロードキャストまたはマルチキャストの可否判定方法またはアドレス判別方法を提供する。
【発明の効果】
【００２４】
本発明によれば、ファイアウォールなどの制限により、ブロードキャストまたはマルチキャストを用いた検出が行えない場合にも、以前とアドレスが変わった機器を検出することができる。または新しいアドレスを判別することができる。
【００２５】
また、ファイアウォールの設定による通信制限など、直接には知ることができない、ブロードキャストまたはマルチキャスト使用の可否を、間接的に知ることができる。
【００２６】
また、ブロードキャストまたはマルチキャスト使用の可否判定により、検出方法切り替えて、効率よく機器の検出を行うことができる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照して本発明の実施例を詳細に説明する。
【００２８】
（実施例１）
図１は、本実施例の機器構成の一例を示す図である。
【００２９】
図１において、１はコンピュータ、２はプリンタ、３はルータ、４はイーサネット（登録商標）である。コンピュータ１、プリンタ２、ルータ３はイーサネット（登録商標）４を介して接続しており、ＴＣＰ／ＩＰプロトコル（ＩＰｖ４）にしたがって通信を行っているものとする。ルータ３はＤＨＣＰサーバ機能を備え、コンピュータ１およびプリンタ２はルータ３からＩＰアドレスを割り当てられる。
【００３０】
ここで、本実施例においては、コンピュータ１からプリンタ２への印刷出力が可能なように、コンピュータ１およびプリンタ２は設定済みである。コンピュータ２はメモリなどの記憶手段（図示せず）にプリンタ２のＩＰアドレスおよびＭＡＣアドレスを記憶しているものとする。なお、本実施例では、機器に固有な情報としてＭＡＣアドレスを例に説明するが、機器に固有な情報であれば、機器ＩＤ、機器名称などを用いても良い。
【００３１】
本実施例においてはコンピュータ１のオペレーティングシステムはＷｉｎｄｏｗｓ（登録商標）とする。
【００３２】
図２は、本実施例におけるコンピュータ１のソフトウェア構成の概略を示す図である。図２においては、Ｗｉｎｄｏｗｓ（登録商標）の印刷に係るソフトウェアを中心に簡略化して示し、本発明の実施に係らない部分は省略している。
【００３３】
図２において、１−１はアプリケーション、１−２はＧＤＩ（Ｇｒａｐｈｉｃｓ  ｄｅｖｉｃｅ  ｉｎｔｅｒｆａｃｅ）、１−３はスプーラ、１−４はポートモニタ、１−５はドライバ・スタック、１−６はファイアウォールである。アプリケーション１−１は、ＧＤＩ１−２の関数を呼び出して印刷ジョブを作り出す。ＧＤＩ１−２はＷｉｎｄｏｗｓ（登録商標）のグラフィック出力インターフェースであり、アプリケーションからの呼び出しに応じてグラフィック描画を行い、印刷データをスプーラ１−３に引き渡す。スプーラ１−３は印刷ジョブ管理、印刷データのスプール、およびポートモニタ１−４の呼び出しを行う。ポートモニタ１−４は、スプーラ１−３からの呼び出しに応じて、ドライバ・スタック１−５を介してプリンタ２へ印刷データを送信したり、プリンタ２からのデータを受信したりする。ドライバ・スタック１−５は、ポートモニタ１−４からの呼び出しに応じて、ＴＣＰ／ＩＰプロトコルにしたがってプリンタ２と通信を行う。また、ポートモニタから渡されたデータをプリンタ２に送信し、プリンタ２から受信したデータをポートモニタに引き渡す。ファイアウォール１−６はコンピュータ１のネットワーク入出力を監視し、必要に応じて入出力を制限する。したがって、ポートモニタからの送信データがプリンタ２へ送信されなかったり、プリンタ２からの受信データがポートモニタ１−４に渡らなかったりする場合がある。
【００３４】
スプーラ１−３から呼び出されるポートモニタ１−４の主な関数としては、ＯｐｅｎＰｏｒｔ（）、ＳｔａｒｔＤｏｃＰｏｒｔ（）、ＷｒｉｔｅＰｏｒｔ（）、ＲｅａｄＰｏｒｔ（）、ＥｎｄＤｏｃＰｏｒｔ（）、ＣｌｏｓｅＰｏｒｔ（）がある。ＯｐｅｎＰｏｒｔ（）はポートモニタ１−４への呼び出しを開始するときに呼び出される。ＣｌｏｓｅＰｏｒｔ（）はアクセスを終了するときに呼び出される。ＳｔａｒｔＤｏｃＰｏｒｔ（）は文書の印刷を開始するときに呼び出される。ＥｎｄＤｏｃＰｏｒｔ（）は文書の印刷を終了するときに呼び出される。ＷｒｉｔｅＰｏｒｔ（）は送信データを書き込むときに呼び出される。ＲｅａｄＰｏｒｔ（）は受信データを読み出すときに呼び出される。
【００３５】
プリンタ２へのネットワークを介したアクセスには、本実施例で定義するネットワークコマンドを用いる。ネットワークコマンドには、情報取得、セッション開始、データ書き込み、データ読み出し、セッション終了、のコマンドを用意する。各コマンドは、コンピュータ１からプリンタ２へ送信されるリクエストパケットと、リクエストに応答してプリンタ２からコンピュータ１へ送信されるレスポンスパケットからなる。
【００３６】
各コマンドのリクエストおよびレスポンスパケットは、８バイトのヘッダと可変長のデータ部からなる。ヘッダは２バイトのＩＤ、２バイトのパラメータ、４バイトのデータ長よりなる。データ長はデータ部のバイト数を示す。リクエストパケットのＩＤの値はそれぞれのコマンドＩＤである。レスポンスパケットのＩＤの値はコマンドＩＤの最上位ビットをセットした値になっている。
【００３７】
図１０は情報取得コマンドのリクエスト、レスポンスパケットを示す図である。
【００３８】
図１０において、１０−１はＩＤであり、その値は情報取得コマンドのコマンドＩＤである０ｘ０００１となっている。１０−２はパラメータであり、その値は０となっている。１０−３はデータ長であり、その値は０となっている。以上が情報取得コマンドのリクエストパケットである。また同図において、１０−４はＩＤであり、その値は情報取得コマンドのコマンドＩＤの最上位ビットをセットした０ｘ８００１となっている。１０−５はパラメータであり、その値は成功を示す０となっている。１０−６はデータ長であり、その値はデータ部１０−７のデータ長ｎとなっている。１０−７はデータ部であり、プリンタ２のＩＰアドレス、ＭＡＣアドレス、プリンタ名、プリンタステータスが含まれる。以上が情報取得コマンドのレスポンスパケットである。
【００３９】
図１１はセッション開始コマンドのリクエスト、レスポンスパケットを示す図である。
【００４０】
図１１において、１１−１はＩＤであり、その値はセッション開始コマンドのコマンドＩＤである０ｘ０００２となっている。１１−２はパラメータであり、その値は０となっている。１１−３はデータ長であり、その値はデータ部１１−４のデータ長ｎとなっている。１１−４はデータ部でであり、印刷ジョブのユーザ名、ドキュメント名などが含まれる。以上がセッション開始コマンドのリクエストパケットである。また同図において、１１−５はＩＤであり、その値は０ｘ８００２となっている。１１−６はパラメータであり、その値はコマンドが成功した場合にはセッションを特定するｉｄとなる。１１−７はデータ長であり、その値は０となっている。以上がセッション開始コマンドのレスポンスパケットである。
【００４１】
図１２はセッション終了コマンドのリクエスト、レスポンスパケットを示す図である。
【００４２】
図１２において、１２−１はＩＤであり、その値はセッション終了コマンドのコマンドＩＤである０ｘ０００３となっている。１１−２はパラメータであり、その値はセッション開始コマンドのレスポンスパケットでプリンタ２から返されたｉｄとなる。１２−３はデータ長で値は０となっている。以上がセッション終了コマンドのリクエストパケットである。また、同図において、１２−４はＩＤであり、その値は０ｘ８００３となっている。１２−５はパラメータであり、その値は成功の場合には０となる。以上がセッション終了コマンドのレスポンスパケットである。
【００４３】
図１３はデータ書き込みコマンドのリクエスト、レスポンスパケットを示す図である。
【００４４】
図１３において、１３−１はＩＤであり、その値はデータ書き込みコマンドのコマンドＩＤである０ｘ０００４となっている。１３−２はパラメータであり、その値はセッション開始コマンドのレスポンスパケットでプリンタ２から返されたｉｄとなる。１３−３はデータ長であり、その値はデータ部１３−４のデータ長ｎとなる。１１−４はデータ部であり、印刷データが含まれる。以上がデータ書き込みコマンドのリクエストパケットである。同図において、１３−５はＩＤであり、その値は０ｘ８００４となっている。１３−６はパラメータであり、その値は成功の場合０となる。１３−６はデータ長であり、その値はデータ部１３−７のデータ長４となっている。１３−８はデータ部である。データ部１３−８の内容はデータ長であり、その値はプリンタ２がリクエストパケットのデータ部１３−４の印刷データのうち処理したデータのデータ長ｍである。以上がデータ書き込みコマンドのレスポンスパケットである。
【００４５】
図１４はデータ読み出しコマンドのリクエスト、レスポンスパケットを示す図である。
【００４６】
図１４において、１４−１はＩＤであり、その値はデータ読み出しコマンドのコマンドＩＤである０ｘ０００５となっている。１４−２はパラメータであり、その値はセッション開始コマンドのレスポンスパケットでプリンタ２から返されたｉｄとなる。１４−３はデータ長であり、その値はデータ部１４−４のデータ長４となっている。１４−４はデータ部である。データ部１４−４の内容はデータ長であり、その値はコンピュータ１がプリンタ２から読み出すデータのデータ長の最大値ｎである。以上がデータ読み出しコマンドのリクエストパケットである。また同図において、１４−５はＩＤであり、その値は０ｘ８００５となっている。１４−６はパラメータであり、その値は成功の場合０となる。１４−７はデータ長であり、データ部１４−８のデータ長ｍとなっている。１４−８はデータ部であり、プリンタステータスデータを含む。以上がデータ読み出しコマンドのレスポンスパケットである。
【００４７】
本実施例においては、上記ネットワークコマンドのうち、情報取得コマンド、セッション開始コマンド、セッション終了コマンドはＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いる。データ書き込みコマンド、データ読み出しコマンドはＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を用いる。手順としてコンピュータ１は、セッション開始コマンドが成功した後にＴＣＰのコネクションを確立し、プリンタ２に対してデータ書き込み、データ読み出しを行う。終了時には、ＴＣＰのコネクションを解除して、セッション終了コマンドを用いてセッションを終了する。
【００４８】
次に、スプーラ１−３がポートモニタ１−４を呼び出す手順を説明し、ポートモニタ１−４の各関数の中で、コンピュータ１がネットワークコマンドを使ってどのようにプリンタ２にアクセスするかを説明する。
【００４９】
まず、ＯｐｅｎＰｏｒｔ（）を呼び出して、ポートモニタ１−４へのアクセスを開始し、ＳｔａｒｔＤｏｃＰｏｒｔ（）を呼び出して文書の印刷を開始する。
【００５０】
関数ＳｔａｒｔＤｏｃＰｏｒｔ（）では、まず、情報取得コマンドを使って出力先であるプリンタ２の確認を行う。
【００５１】
図１６はコンピュータ１が行うプリンタ確認処理のフローチャートである。
【００５２】
図１６において、まず、ステップＳ１６０１で、情報取得コマンドのリクエストを、記憶しているプリンタ２のＩＰアドレス宛てに送信し、そのレスポンスを受け取る。次いでステップＳ１６０２で結果を判定する。この判定では、情報取得コマンドのレスポンスを受信すると、このレスポンスに含まれるＭＡＣアドレスを、コンピュータ１が記憶手段に記憶しているプリンタ２のＭＡＣアドレスと比較する。この比較の結果、ＭＡＣアドレスが合致すればステップＳ１６０５に進む。また、レスポンスを受信できない、あるいは受信したレスポンスのデータ部に含まれるＭＡＣアドレスが、記憶しているプリンタ２のＭＡＣアドレスに合致しない場合にはステップＳ１６０３に進む。
【００５３】
ステップＳ１６０３ではプリンタ検出処理を行う。処理の内容については後述する。ステップＳ１６０４では、プリンタの検出結果を判定し、プリンタを検出できれば（成功であれば）ステップＳ１６０５に進む。プリンタを検出できず、プリンタ検出が失敗であればステップＳ１６０６に進む。
【００５４】
ステップＳ１６０５では成功判定処理を行い、コンピュータ１が記憶しているプリンタ２のＩＰアドレスと、レスポンスに含まれていたプリンタ２のＩＰアドレスと比較する。この比較の結果、ＩＰアドレスが異なる場合には、プリンタ２のＩＰアドレスが変更されているので、記憶手段に記憶しているＩＰアドレスを変更後のＩＰアドレスに更新する。つまり、レスポンスに含まれていたＩＰアドレスに更新する。ステップＳ１６０６では失敗判定処理を行い、スプーラ１−３に対してエラーを返せるようにする。
【００５５】
コンピュータ１はプリンタ確認に成功すると、次にセッション開始コマンドでプリンタ２に対してセッション開始を要求する。セッション開始に成功するとコンピュータ１はプリンタ２とＴＣＰのコネクションを確立し、データの書き込み、読み出しが可能な状態にし、スプーラ１−３に成功のステータスを返す。
【００５６】
プリンタ確認、またセッション開始に失敗した場合には、スプーラ１−３に失敗のステータスを返す。印刷はここで中断する。
【００５７】
ＳｔａｒｔＤｏｃＰｏｒｔ（）が成功ステータスで終了すると、スプーラは必要に応じてＷｒｉｔｅＰｏｒｔ（）、ＲｅａｄＰｏｒｔ（）を呼び出して、データの書き込み、読み出しを行う。
【００５８】
関数ＷｒｉｔｅＰｏｒｔ（）では、データ書き込みコマンドを使い、プリンタ２にスプーラ１−３から渡されたデータの書き込みを行う。
【００５９】
関数ＲｅａｄＰｏｒｔ（）では、データ読み出しコマンドを使い、プリンタ２からスプーラ１−３に渡すデータの読み出しを行う。
【００６０】
必要な書き込み、読み出しを終えるとスプーラ１−３はＥｎｄＤｏｃＰｏｒｔ（）を呼び出して文書の印刷を終了し、ＣｌｏｓｅＰｏｒｔ（）を呼び出してポートモニタへのアクセスを終了する。
【００６１】
関数ＥｎｄＤｏｃＰｏｒｔ（）では、ＴＣＰのコネクションを解除し、セッション終了コマンドを使ってセッションを終了する。
【００６２】
ここで、機器に具体的なＩＰアドレスを割り当てて、前述のプリンタ確認処理の流れを見ることにする。図１の構成で、ルータ３には固定のアドレス１９２．１６８．０．１が割り当てられ、コンピュータ１には１９２．１６８．０．２、プリンタ２には１９２．１６８．０．３が割り当てられているものとする。また、コンピュータ１には、コンピュータ１からプリンタ２に印刷出力可能に設定されているものとする。このとき、コンピュータ２はその記憶手段（図示せず）にプリンタ２のＩＰアドレスおよびＭＡＣアドレスを記憶しており、記憶しているＩＰアドレスは１９２．１６８．０．３である。
【００６３】
この状態では、コンピュータ１が記憶しているＩＰアドレスと実際のプリンタ２のＩＰアドレスが一致する。そのため、ステップＳ１６０１で、ＩＰアドレス１９２．１６８．０．３宛てに送信した情報取得コマンドのリクエストパケットはプリンタ２に届く。そしてプリンタ２が応答したレスポンスパケットをコンピュータ１が受信してコンピュータ１はプリンタ２を確認することができる。
【００６４】
次に、機器構成が変わってプリンタ２のＩＰアドレスが変わった例を説明する。
【００６５】
図１５は、図１の機器構成に別の機器が加わった構成を示す図である。
【００６６】
図１５において、５は新たに加わったラップトップコンピュータである。
【００６７】
図１５の構成で、ルータ３、コンピュータ１、ラップトップコンピュータ５、プリンタ３の順に電源が投入されたとする。ルータ３のＤＨＣＰサーバ機能により、ルータ３には固定の１９２．１６８．０．１、コンピュータ１には１９２．１６８．０．２、ラップトップコンピュータ５には以前プリンタ２に割り当てられていた１９２．１６８．０．３、そしてプリンタ２には１９２．１６８．０．４が割り当てられたものとする。
【００６８】
この状態では、コンピュータ１が記憶しているＩＰアドレスと実際のプリンタ２のＩＰアドレスが一致しない。そのため、ステップＳ１６０１で、コンピュータ１が記憶しているＩＰアドレス１９２．１６８．０．３宛てに送信した情報取得コマンドのリクエストパケットはプリンタ２に届かない。したがって、コンピュータ１はプリンタ２からの応答を受信することができず、次のステップＳ１６０２で失敗判定となり、ステップＳ１６０３のプリンタ検出処理に進むことになる。
【００６９】
以下、本実施例におけるプリンタ検出処理を説明する。
【００７０】
まず、本実施例のプリンタ検出処理で用いる第１の検出処理であるブロードキャスト・マルチキャストを用いたプリンタ検出処理について説明する。
【００７１】
図３は、コンピュータ１が実行する、ブロードキャスト・マルチキャストを用いたプリンタ検出処理を示すフローチャートである。
【００７２】
まず、ステップＳ３０１において、プリンタ情報取得コマンドを送信する。このとき、宛先アドレスには、リミテッド・ブロードキャスト・アドレス（２５５．２５５．２５５．２５５）、ネット・ダイレクト・ブロードキャスト・アドレス（この実施例では１９２．１６８．０．２５５）、あるいは、サブネット上の全システムを意味するマルチキャスト・アドレス（２２４．０．０．１）などを指定する。つまり、ステップＳ３０１では、プリンタ情報取得コマンドをブロードキャスト送信、またはマルチキャスト送信する。
【００７３】
次いで、ステップＳ３０２では、プリンタ情報取得コマンドに対する応答の受信を待つ。応答の受信にはタイムアウトを設定し、ステップＳ３０３で、時間内に応答を受信できたかどうかを判定する。
【００７４】
応答を受信できた場合には、ステップＳ３０４に進み、所望のプリンタ（プリンタ２）からの応答かどうかを判定する。この判定では、受信した応答に含まれるＭＡＣアドレスが、コンピュータ１が記憶手段に記憶しているプリンタ２のＭＡＣアドレスと合致するかを判定する。合致した場合は、所望のプリンタからの応答であるとし、ステップＳ３０５でプリンタ検出成功処理を行う。プリンタ検出成功処理では、受信した応答に含まれるＩＰアドレスをプリンタ２のＩＰアドレスとして更新する。そして、プリンタ検出処理を終了する。
【００７５】
ステップＳ３０２で応答を得られなかった場合、およびＳ３０４で応答に含まれるＭＡＣアドレスが所望のプリンタに合致しなかった場合には、ステップＳ３０３で所定の時間を経過しているかどうかを判定する。所定の時間が経過していなければ、ステップＳ３０２に戻って再度、応答の受信を待つ。所定の時間を経過していれば、ステップＳ３０６でプリンタ検出失敗処理を行い、検出処理を終了する。
【００７６】
次に、本実施例のプリンタ検出処理で用いる第２の検出処理であるユニキャストを用いたプリンタ検出処理を説明する。
【００７７】
図４は、ユニキャストを用いたプリンタ検出処理を示すフローチャートである。
【００７８】
まず、ステップＳ４０１で、宛先のＩＰアドレスを格納する変数Ｘを初期化する。
【００７９】
ついで、ステップＳ４０２で、宛先ＩＰアドレスにＸの値を指定して、プリンタ情報取得コマンドをユニキャスト送信する。
【００８０】
次に、ステップＳ４０３で応答の受信を待つ。応答の受信にはタイムアウトを設定し、ステップＳ４０４で時間内に応答を受信できたかどうかを判定する。
【００８１】
応答を受信できた場合には、ステップＳ４０５で、応答を送信した機器が所望のプリンタ（プリンタ２）かどうかを判定する。この判定では、受信した応答に含まれるＭＡＣアドレスが、コンピュータ１が記憶手段に記憶しているプリンタ２のＭＡＣアドレスと合致するかを判定する。合致した場合は、所望のプリンタからの応答であるとし、ステップＳ４０６でプリンタ検出成功処理を行う。プリンタ検出成功処理では、受信した応答に含まれるＩＰアドレスをプリンタ２のＩＰアドレスとして更新する。そして、プリンタ検出処理を終了する。
【００８２】
ステップＳ４０３で応答を受信できなかった場合、およびステップＳ４０５で応答に含まれるＭＡＣアドレスが所望のプリンタに合致しなかった場合には、ステップＳ４０７で宛先ＩＰアドレスの変数Ｘを更新する。ステップＳ４０８で宛先アドレスの終了を判定し、終了判定でなければ、ステップＳ４０２に戻って、再度、検出を行う。終了判定であれば、ステップＳ４０９でプリンタ検出失敗処理を行い、検出処理を終了する。
【００８３】
ここで、宛先ＩＰアドレスの変数Ｘの初期値と範囲について説明する。
【００８４】
家庭で使われているルータが備えているＤＨＣＰサーバ機能では、あるＩＰアドレスから連続した一定個数のＩＰアドレスを割り当てるのが一般的である。例えば、ルータに固定アドレス１９２．１６８．０．１を割り当て、１９２．１６８．０．２から１６個を、接続した機器に割り当てるというものである。したがって、プリンタ２のアドレスを検出するためには、プリンタ２の元のアドレス（つまりコンピュータ１が記憶しているアドレス）の前後いくつかを試せばおおむね見つかるはずである。
【００８５】
そこで、一例としては、コンピュータ１が記憶しているアドレスの次のアドレスを初期値として、記憶しているＩＰアドレスの前後１６個ずつを変数Ｘの範囲とする方法がある。ここで、Ｘの範囲が例えば、１９２．１６８．０．０や１９２．１６８．０．２５５に達した場合には、それを範囲の境界とすればよい。また、ネットワークがサブネット化されている場合には、サブネットマスクを考慮して範囲を決めてもよい。
【００８６】
さらに、プリンタ２に割り当てられたＩＰアドレスの履歴を記憶し、Ｘの範囲を調整してもよい。
【００８７】
Ｘの初期値の基準としてはコンピュータ１自身のアドレスを用いてもよい。また、ルータ３のアドレス（デフォルトゲートウェイアドレスとして機器に伝えられる場合が多い）を基準としてもよい。
【００８８】
あるいは、ユーザが初期値と範囲を設定できるようにしてもよい。
【００８９】
また、範囲を分割して、分割した範囲で検出を行って、所望のプリンタが検出できなかった場合には、ユーザに問い合わせて、ユーザから指示があれば、残りの範囲で検出を行うようにしてもよい。
【００９０】
本実施例のプリンタ検出処理を説明する。
【００９１】
図５は、図３で説明したプリンタ検出処理と、図４で説明したプリンタ検出処理とを組み合わせて行うプリンタ検出処理を示すフローチャートである。
【００９２】
まず、ステップＳ５０１で、図３において先に説明した、ブロードキャスト・マルチキャストによるプリンタ検出処理を行い、ステップＳ５０２で所望のプリンタを検出できたかを判定する。所望のプリンタを検出できず、失敗であれば、ステップＳ５０３で、図４において先に説明したユニキャストによるプリンタ検出処理を行い、ステップＳ５０４で所望のプリンタを検出できたかを判定する。
【００９３】
ステップＳ５０２、あるいはステップＳ５０４で所望のプリンタを検出できた場合には、ステップＳ５０５でプリンタ検出成功処理を行い、プリンタ２のＩＰアドレスの更新を行う。ステップＳ５０４で失敗判定であれば、ステップＳ５０６でプリンタ検出失敗処理を行う。以上でプリンタ検出処理を終了する。
【００９４】
なお、ステップＳ５０１のブロードキャスト・マルチキャストによるプリンタ検出処理と、ステップＳ５０３のユニキャストによるプリンタ検出処理の順序は逆でもよい。また、ブロードキャスト・マルチキャストによるプリンタ検出処理とユニキャストによるプリンタ検出処理を並行して行ってもよい。
【００９５】
（実施例２）
実施例２の機器構成、コンピュータ１のソフトウェア構成は実施例１と同様であるので説明を省略する。
【００９６】
本実施例において、コンピュータ１は、実施例３において後述するブロードキャスト・マルチキャスト可否判定処理による判定結果を記憶しているものとする。
【００９７】
図６は、実施例２のプリンタ検出処理を示すフローチャートである。
【００９８】
まず、ステップＳ６０１では、記憶しているブロードキャスト・マルチキャストの可否判定結果を参照して、ブロードキャスト・マルチキャストの可否を判定する。
【００９９】
可であれば、ステップＳ６０２で、図３において説明したブロードキャスト・マルチキャストによるプリンタ検出処理を行い、ステップＳ６０３でプリンタ検出処理の結果を判定する。
【０１００】
また、Ｓ６０１の判定が否であれば、ステップＳ６０５で、図４において説明したユニキャストによるプリンタ検出処理を行い、ステップＳ６０６でプリンタ検出処理の結果を判定する。
【０１０１】
ステップＳ６０３、あるいはＳ６０６でプリンタ検出処理が成功した場合は、ステップＳ６０４でプリンタ検出成功処理行い、プリンタ２のＩＰアドレスの更新を行う。また、ステップＳ６０３、あるいはＳ６０６でプリンタ検出処理が失敗した場合は、ステップＳ６０７でプリンタ検出失敗処理を行い、検出処理を終了する。
【０１０２】
（実施例３）
実施例３の機器構成、コンピュータ１のソフトウェア構成は実施例１と同様であるので説明を省略する。
【０１０３】
本実施例において、コンピュータ１は、後述するブロードキャスト・マルチキャスト可否判定処理による判定結果を記憶しているものとする。
【０１０４】
本実施例では、ブロードキャスト・マルチキャスト可否判定処理による判定結果に応じて、ブロードキャスト・マルチキャストによるプリンタ検出処理とユニキャストによるプリンタ検出処理とを行う順序を切り替えるようにする。
【０１０５】
図７は、実施例３のプリンタ検出処理を示すフローチャートである。
【０１０６】
まず、ステップＳ７０１では、記憶しているブロードキャスト・マルチキャストの可否判定結果を参照して可否を判定する。
【０１０７】
可であれば、ステップＳ７０２で、ブロードキャスト・マルチキャストによるプリンタ検出処理を行い、ステップＳ７０３でブロードキャスト・マルチキャストによるプリンタ検出処理の結果を判定する。プリンタ検出処理の結果が失敗であれば、ステップＳ７０４でユニキャストによるプリンタ検出処理を行い、ステップＳ７０５でユニキャストによるプリンタ検出処理の結果を判定する。
【０１０８】
また、Ｓ７０１の判定が否であれば、ステップＳ７０７でユニキャストによるプリンタ検出処理を行い、ステップＳ７０８でユニキャストによるプリンタ検出処理の結果を判定する。結果が失敗であれば、ステップＳ７０９でブロードキャスト・マルチキャストによるプリンタ検出処理を行い、ステップＳ７１０でブロードキャスト・マルチキャストによるプリンタ検出処理の結果を判定する。
【０１０９】
ステップＳ７０３、Ｓ７０５、Ｓ７０８、あるいはＳ７１０でプリンタ検出処理が成功した場合は、ステップＳ７０６でプリンタ検出成功処理を行い、プリンタ２のＩＰアドレスの更新を行う。ステップＳ７０３、Ｓ７０５、Ｓ７０８、あるいはＳ７１０でプリンタ検出処理が失敗の判定であれば、ステップＳ７１１でプリンタ検出失敗処理を行い、検出処理を終了する。
【０１１０】
以下、実施例２及び実施例３におけるブロードキャスト・マルチキャスト可否判定処理を説明する。
【０１１１】
まず、第１の判定処理を説明する。
【０１１２】
図８は、ブロードキャスト・マルチキャストの可否を判定する第１の処理を示すフローチャートである。
【０１１３】
まず、ステップＳ８０１において、プリンタ情報取得コマンドを送信する。このとき、宛先アドレスには、リミテッド・ブロードキャスト・アドレス（２５５．２５５．２５５．２５５）、ネット・ダイレクト・ブロードキャスト・アドレス（この実施例では１９２．１６８．０．２５５）、あるいは、サブネット上の全システムを意味するマルチキャスト・アドレス（２２４．０．０．１）などを指定する。つまり、ステップＳ８０１では、プリンタ情報取得コマンドをブロードキャスト送信、またはマルチキャスト送信する。
【０１１４】
次いで、ステップＳ８０２でプリンタ情報取得コマンドに対する応答の受信を待つ。応答の受信にはタイムアウトを設定し、ステップＳ８０６で、時間内に応答を受信できたかどうかを判定する。
【０１１５】
応答を受信できた場合には、ステップＳ８０４に進み、所望のプリンタ（プリンタ２）からの応答かどうかを判定する。この判定では、受信した応答に含まれるＭＡＣアドレスが、コンピュータ１が記憶手段に記憶しているプリンタ２のＭＡＣアドレスと合致するかを判定する。合致する場合には、ステップＳ８０５でブロードキャスト・マルチキャスト可の判定を行い、ブロードキャスト・マルチキャストが可能な環境であることをメモリ等の記憶手段に記憶し、判定処理を終了する。
【０１１６】
ステップＳ８０２で応答を得られなかった場合、およびＳ８０４で所望のプリンタに合致しなかった場合には、ステップＳ８０６で所定の時間を経過しているかどうかを判定する。所定の時間を経過していなければ、ステップＳ８０２に戻って再度、応答の受信を待つ。所定の時間を経過していれば、ステップＳ８０７でブロードキャスト・マルチキャスト否の判定を行い、ブロードキャスト・マルチキャストが不可能な環境であることをメモリ等の記憶手段に記憶し、検出処理を終了する。
【０１１７】
次に第２の判定処理を説明する。
【０１１８】
図９は、ブロードキャスト・マルチキャストの可否を判定する第２の処理を示すフローチャートである。図９では、ブロードキャスト・マルチキャストにより所望のプリンタを２回連続して検出できた場合に、ブロードキャスト・マルチキャストが可能な環境であると判断するようにする。
【０１１９】
まず、ステップＳ９０１において、プリンタ情報取得コマンドを送信する。このとき、宛先アドレスには、リミテッド・ブロードキャスト・アドレス（２５５．２５５．２５５．２５５）、ネット・ダイレクト・ブロードキャスト・アドレス（この実施例では１９２．１６８．０．２５５）、あるいは、サブネット上の全システムを意味するマルチキャスト・アドレス（２２４．０．０．１）などを指定する。つまり、ステップＳ９０１では、プリンタ情報取得コマンドをブロードキャスト送信、またはマルチキャスト送信する。
【０１２０】
次いで、ステップＳ９０２でプリンタ情報取得コマンドに対する応答の受信を待つ。応答の受信にはタイムアウトを設定し、ステップＳ９０８で、時間内に応答を受信できたかどうかを判定する。
【０１２１】
応答を受信できた場合には、ステップＳ９０４に進み、所望のプリンタからの応答かどうかを判定する。この判定では、受信した応答に含まれるＭＡＣアドレスが、コンピュータ１が記憶手段に記憶しているプリンタ２のＭＡＣアドレスと合致するかを判定する。合致する場合には、所望のプリンタを検索できたことになる。次に、ステップＳ９０５でフラグがセットされているかどうかを判定する。フラグがセットされていれば、前回のブロードキャスト・マルチキャストによるプリンタ検索処理においても、所望のプリンタを検索できていたことになる。よって、２回連続して所望のプリンタを検索できたので、ステップＳ９０６でブロードキャスト・マルチキャスト可の判定を行い、ブロードキャスト・マルチキャストが可能な環境であることをメモリ等の記憶手段に記憶し、判定処理を終了する。フラグがセットされていない場合には、所望のプリンタを検出したのは１回目であるので、ステップＳ９０７でフラグをセットし、ステップＳ９１０に進む。
【０１２２】
ステップＳ９０２で応答を得られなかった場合、およびＳ９０４で所望のプリンタに合致しなかった場合には、ステップＳ９０８で所定の時間を経過しているかどうかを判定する。所定の時間が経過していなければ、ステップＳ９０２に戻って再度、応答の受信を待つ。所定の時間を経過していれば、所望のプリンタを検索できなかったので、ステップＳ９０９でフラグをクリアする。ステップＳ９１０では、ブロードキャスト・マルチキャスト否の判定を行い、ブロードキャスト・マルチキャストが不可能な環境であることをメモリ等の記憶手段に記憶し、検出処理を終了する。
【０１２３】
以上のようにして、ブロードキャスト・マルチキャスト可否判定処理の判定結果をコンピュータ１の記憶手段に記憶する。
【０１２４】
なお、図９においては、フラグを利用することにより、２回連続して所望のプリンタを検索できた場合に、ブロードキャスト・マルチキャストが可であると判定した。このような方法のほかに、所定数をカウントするカウンタを用いることにより、所定回数、所望のプリンタを検索できた場合に、ブロードキャスト・マルチキャストが可であると判定するようにしてもよい。この場合、ステップＳ９０５の代わりに、カウンタが所定数をカウントしたかを判定し、所定数をカウントしたならばステップＳ９０６に進む。また、所定数をカウントしていないならば、ステップＳ９０７の代わりに、カウンタをインクリメントする。また、ステップＳ９０９の代わりに、カウンタをクリアするようにすればよい。
【０１２５】
上述したブロードキャスト・マルチキャスト可否判定処理は、ブロードキャスト・マルチキャストが制限されなければ必ず応答が得られる状態で行う必要がある。ユニキャストにより印刷を行っているとき、またはその直後は、プリンタ２に電源が投入されている状態であり、かつ、正常に動作できる状態である。それ以外のときは、プリンタの電源を切られていたり、通信回線の状態が悪くプリンタと通信できない状態などが考えられる。したがって、図８、図９において説明した第１、第２の判定処理は、正常に印刷を行っているとき、またはその直後に行われる。
【０１２６】
本実施例においては、印刷処理への影響が小さい、文書の印刷を終了するとき、すなわち、ポートモニタの関数ＥｎｄＤｏｃＰｏｒｔ（）の中で、セッション終了コマンドの後に、第１または第２の判定処理を行うものとする。
【０１２７】
本実施例においては、通常の印刷処理に、ブロードキャスト・マルチキャストを用いた第１または第２の判定処理を追加して、ブロードキャスト・マルチキャストの可否を判定したが、この方法に限定されるものではない。ブロードキャスト・マルチキャストに対して応答が得られるかがわかればよいので、通常の通信においてユニキャストで送信しているコマンドをブロードキャスト・マルチキャストに置き換えてもよい。例えば、本実施例におけるセッション終了コマンドをブロードキャスト・マルチキャストで送信し、応答を受信できたかどうかにより、ブロードキャスト・マルチキャストの可否を判定してもよい。
【０１２８】
さらに、実際の機器検出において、ブロードキャスト・マルチキャストを用いた検出処理を行ったときに、検出結果を、可否判定に反映させてもよい。
【０１２９】
ここでは、ファイアウォールの設定を知ることができない場合の判定方法を示したが、ファイアウォールやオペレーティングシステムのＡＰＩなどにより設定を知ることができれば、判定結果を記憶して、機器検出のとき参照するのではなく、機器検出の度に設定を調べるようにしてもよい。
【図面の簡単な説明】
【０１３０】
【図１】実施例における機器構成の一例を示す図である。
【図２】実施例におけるコンピュータのソフトウェア構成の概略を示す図である。
【図３】ブロードキャスト・マルチキャストを用いたプリンタ検出処理を示すフローチャートである。
【図４】ユニキャストを用いたプリンタ検出処理を示すフローチャートである。
【図５】実施例１のプリンタ検出処理を示すフローチャートである。
【図６】実施例２のプリンタ検出処理を示すフローチャートである。
【図７】実施例３のプリンタ検出処理を示すフローチャートである。
【図８】ブロードキャスト・マルチキャストの可否を判定する第１の処理を示すフローチャートである。
【図９】ブロードキャスト・マルチキャストの可否を判定する第２の処理を示すフローチャートである。
【図１０】情報取得コマンドのリクエスト、レスポンスを示す図である。
【図１１】セッション開始コマンドのリクエスト、レスポンスを示す図である。
【図１２】セッション終了コマンドのリクエスト、レスポンスを示す図である。
【図１３】データ書き込みコマンドのリクエスト、レスポンスを示す図である。
【図１４】データ読み出しコマンドのリクエスト、レスポンスを示す図である。
【図１５】図１の機器構成に別の機器が加わった構成を示す図である。
【図１６】印刷開始時のプリンタ確認処理を示すフローチャートである。
【符号の説明】
【０１３１】
１  コンピュータ
２  プリンタ
３  ルータ
４  イーサネット（登録商標）
５  ラップトップコンピュータ
【図１】
2006340286.tif 000003
【図２】
2006340286.tif 000004
【図３】
2006340286.tif 000005
【図４】
2006340286.tif 000006
【図５】
2006340286.tif 000007
【図６】
2006340286.tif 000008
【図７】
2006340286.tif 000009
【図８】
2006340286.tif 000010
【図９】
2006340286.tif 000011
【図１０】
2006340286.tif 000012
【図１１】
2006340286.tif 000013
【図１２】
2006340286.tif 000014
【図１３】
2006340286.tif 000015
【図１４】
2006340286.tif 000016
【図１５】
2006340286.tif 000017
【図１６】
2006340286.tif 000018