(57)【要約】【課題】複数の情報処理装置の各通信ポートを電気的に接続して互いにデータ通信を行う通信システムにおいて、複数の通信処理を並行して実行可能な構成を通信用のハードウェアを増加させることなく実現する。【解決手段】通信システム１は、コンピュータ２側には通信ポートＰ１と対応付けて複数の第１仮想ポートを割り当てる第１仮想ポート割当手段が設けられ、携帯端末２０側には通信ポートＰ２と対応付けて複数の第２仮想ポートを割り当てる第２仮想ポート割当手段が設けられている。そして、一の第１仮想ポートと一の第２仮想ポートとを通信相手として設定し、他の第１仮想ポートと他の第２仮想ポートとを通信相手として設定した上で、通信ポートＰ１，Ｐ２間において複数の通信処理を並行して行うことができるようになっている。【選択図】図１
2011186713.tif 000002
【特許請求の範囲】
【請求項１】
第１通信ポートを備えた第１情報処理装置と、
前記第１通信ポートに接続可能な第２通信ポートを備えた第２情報処理装置と、
を有し、
前記第１情報処理装置に設けられた前記第１通信ポートと前記第２情報処理装置に設けられた前記第２通信ポートとを介して前記第１情報処理装置と前記第２情報処理装置との間で通信を行う通信システムであって、
前記第１情報処理装置は、
前記第１通信ポートを介してデータの送受信を行う第１通信手段と、
前記第１通信ポートと対応付けて複数の第１仮想ポートを割り当てる第１仮想ポート割当手段と、
を備え、
前記第２情報処理装置は、
前記第２通信ポートを介してデータの送受信を行う第２通信手段と、
前記第２通信ポートと対応付けて複数の第２仮想ポートを割り当てる第２仮想ポート割当手段と、
を有し、
前記第１情報処理装置及び前記第２情報処理装置の少なくともいずれかにおいて、一の第１仮想ポートと一の第２仮想ポートとを通信相手として設定し、他の第１仮想ポートと他の第２仮想ポートとを通信相手として設定する設定手段が設けられ、
前記第１通信手段と前記第２通信手段とが、前記設定手段によって対応付けられた前記一の第１仮想ポートと前記一の第２仮想ポートとを介して第１の通信処理を行うと共に、前記他の第１仮想ポートと前記他の第２仮想ポートとを介して第２通信処理を行う構成をなしており、更に、前記第１の通信処理と前記第２の通信処理とが並行して実行可能とされていることを特徴とする通信システム。
【請求項２】
前記設定手段は、前記第１情報処理に設けられた第１設定手段を有し、
前記第１設定手段は、前記第１仮想ポート割当手段によって割り当てられた前記一の第１仮想ポートから、前記第２情報処理装置において割り当てられている複数の前記第２仮想ポートに対して第１情報を送信する第１情報送信手段を備えたことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記第２情報処理装置には、前記第１情報送信手段からの前記第１情報を受信したときに当該第１情報に対する第１応答データを少なくともいずれかの前記第２仮想ポートを介して送信する第１応答データ送信手段が設けられており、
前記第１設定手段は、
前記第１応答データ送信手段からの前記第１応答データを受信可能な第１応答データ受信手段を備え、
前記第１応答データ受信手段による前記第１応答データの受信結果に基づいて前記一の第１仮想ポートの通信相手となる前記一の第２仮想ポートを設定することを特徴とする請求項２に記載の通信システム。
【請求項４】
前記設定手段は、前記第２情報処理装置に設けられた第２設定手段を有し、
前記第２設定手段は、前記第２仮想ポート割当手段によって割り当てられた前記他の第２仮想ポートから、前記第１情報処理装置において割り当てられた複数の前記第１仮想ポートに対して第２情報を送信する第２情報送信手段を備え、
前記第１情報処理装置には、前記第２情報送信手段からの前記第２情報を受信したときに当該第２情報に対する第２応答データを少なくともいずれかの前記第１仮想ポートを介して送信する第２応答データ送信手段が設けられており、
前記第２設定手段は、
前記第２応答データ送信手段からの前記第２応答データを受信可能な第２応答データ受信手段を備え、
前記第２応答データ受信手段による前記第２応答データの受信結果に基づいて前記他の第２仮想ポートの通信相手となる前記他の第１仮想ポートを設定することを特徴とする請求項３に記載の通信システム。
【請求項５】
前記第１設定手段は、前記第１応答データ受信手段が複数の前記第２仮想ポートから前記第１応答データを受信した場合に前記一の第１仮想ポートについての通信相手の設定を中止する中止手段を有することを特徴とする請求項２から請求項４のいずれか一項に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関するものである。
【背景技術】
【０００２】
光学的情報読取装置などの情報処理装置では、コンピュータなどの外部装置と通信ケーブルなどを用いて各種通信処理を行う場合があり、例えば、携帯型の光学的情報読取装置に搭載されたアプリケーションプログラムについてコンピュータ上でデバッグ処理を行うようなときには、光学的情報読取装置の通信ポートとコンピュータの通信ポートとを接続し、各種データをシリアル通信等で送受信することによりコンピュータ上でのデバッグ（リモートデバッグ）を可能としている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３１０５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記のように複数の情報処理装置を互いに接続してデータ通信を行う場合、複数の通信処理を同時期に並行して行う場合が問題となる。例えば、いずれかの情報処理装置に利用可能な通信ポート（ハードウェア）が１つしかない場合、従来では、いずれかの通信処理を行っているときには当該通信処理よってその通信ポートが占有されてしまうため、他の通信処理を並行して行うことができず、この点で利便性に欠けるものであった。
【０００５】
本発明は、上述した課題を解決するためになされたものであり、複数の情報処理装置の各通信ポートを電気的に接続して互いにデータ通信を行う通信システムにおいて、複数の通信処理を並行して実行可能な構成を通信用のハードウェアを増加させることなく実現することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１の発明は、第１通信ポートを備えた第１情報処理装置と、前記第１通信ポートに接続可能な第２通信ポートを備えた第２情報処理装置と、有し、前記第１情報処理装置に設けられた前記第１通信ポートと前記第２情報処理装置に設けられた前記第２通信ポートとを介して前記第１情報処理装置と前記第２情報処理装置との間で通信を行う通信システムであって、前記第１情報処理装置は、前記第１通信ポートを介してデータの送受信を行う第１通信手段と、前記第１通信ポートと対応付けて複数の第１仮想ポートを割り当てる第１仮想ポート割当手段と、を備えている。
また、前記第２情報処理装置は、前記第２通信ポートを介してデータの送受信を行う第２通信手段と、前記第２通信ポートと対応付けて複数の第２仮想ポートを割り当てる第２仮想ポート割当手段と、を有している。
更に、前記第１情報処理装置及び前記第２情報処理装置の少なくともいずれかにおいて、一の第１仮想ポートと一の第２仮想ポートとを通信相手として設定し、他の第１仮想ポートと他の第２仮想ポートとを通信相手として設定する設定手段が設けられ、前記第１通信手段と前記第２通信手段とが、前記設定手段によって対応付けられた前記一の第１仮想ポートと前記一の第２仮想ポートとを介して第１の通信処理を行うと共に、前記他の第１仮想ポートと前記他の第２仮想ポートとを介して第２通信処理を行う構成をなしており、更に、前記第１の通信処理と前記第２の通信処理とが並行して実行可能とされていることを特徴としている。
【０００７】
請求項２の発明は、請求項１に記載の通信システムにおいて、前記設定手段が、前記第１情報処理に設けられた第１設定手段を有し、前記第１設定手段が、前記第１仮想ポート割当手段によって割り当てられた前記一の第１仮想ポートから、前記第２情報処理装置において割り当てられている複数の前記第２仮想ポートに対して第１情報を送信する第１情報送信手段を備えたことを特徴としている。
【０００８】
請求項３の発明は、請求項２に記載の通信システムにおいて、前記第２情報処理装置には、前記第１情報送信手段からの前記第１情報を受信したときに当該第１情報に対する第１応答データを少なくともいずれかの前記第２仮想ポートを介して送信する第１応答データ送信手段が設けられており、前記第１設定手段が、前記第１応答データ送信手段からの前記第１応答データを受信可能な第１応答データ受信手段を備え、前記第１応答データ受信手段による前記第１応答データの受信結果に基づいて前記一の第１仮想ポートの通信相手となる前記一の第２仮想ポートを設定することを特徴としている。
【０００９】
請求項４の発明は、請求項３に記載の通信システムにおいて、前記設定手段が、前記第２情報処理装置に設けられた第２設定手段を有し、前記第２設定手段が、前記第２仮想ポート割当手段によって割り当てられた前記他の第２仮想ポートから、前記第１情報処理装置において割り当てられた複数の前記第１仮想ポートに対して第２情報を送信する第２情報送信手段を備えている。更に、前記第１情報処理装置には、前記第２情報送信手段からの前記第２情報を受信したときに当該第２情報に対する第２応答データを少なくともいずれかの前記第１仮想ポートを介して送信する第２応答データ送信手段が設けられており、前記第２設定手段は、前記第２応答データ送信手段からの前記第２応答データを受信可能な第２応答データ受信手段を備えている。そして、前記第２応答データ受信手段による前記第２応答データの受信結果に基づいて前記他の第２仮想ポートの通信相手となる前記他の第１仮想ポートを設定している。
【００１０】
請求項５の発明は、請求項２から請求項４のいずれか一項に記載の通信システムにおいて、前記第１設定手段は、前記第１応答データ受信手段が複数の前記第２仮想ポートから前記第１応答データを受信した場合に前記一の第１仮想ポートについての通信相手の設定を中止する中止手段を有している。
【発明の効果】
【００１１】
請求項１の発明では、第１情報処理装置において、第１通信ポートと、第１通信ポートを介してデータの送受信を行う第１通信手段と、第１通信ポートと対応付けて複数の第１仮想ポートを割り当てる第１仮想ポート割当手段とが設けられている。また、第２情報処理装置において、第２通信ポートと、第２通信ポートを介してデータの送受信を行う第２通信手段と、第２通信ポートと対応付けて複数の第２仮想ポートを割り当てる第２仮想ポート割当手段とが設けられている。これにより、第１情報処理装置及び第２情報処理装置のそれぞれにおいて実際の通信ポート（第１通信ポート、第２通信ポート）に対応した複数の仮想ポートが割り当てられることとなる。
更に、第１情報処理装置及び第２情報処理装置の少なくともいずれかにおいて、一の第１仮想ポートと一の第２仮想ポートとを通信相手として設定し、他の第１仮想ポートと他の第２仮想ポートとを通信相手として設定する設定手段が設けられ、第１通信手段と第２通信手段とが、設定手段によって対応付けられた一の第１仮想ポートと一の第２仮想ポートとを介して第１の通信処理を行うと共に、他の第１仮想ポートと他の第２仮想ポートとを介して第２通信処理を行う構成をなしており、更に、第１の通信処理と第２の通信処理とが並行して実行可能とされている。このようにすると、第１通信ポート及び第２通信ポートを介して複数の通信を同時期に並行して行うことができ、第１通信ポートと第２通信ポートとの間でいずれかの通信が行われている時期に他の通信が排除される事態を回避し易くなる。
【００１２】
請求項２の発明は、第１情報処理に第１設定手段が設けられ、第１設定手段が、第１仮想ポート割当手段によって割り当てられた一の第１仮想ポートから、第２情報処理装置において割り当てられている複数の第２仮想ポートに対して第１情報を送信する第１情報送信手段を備えている。このようにすると、第１通信ポートに割り当てられたいずれか一の第１仮想ポートから当該一の第１仮想ポートの相手となる複数の第２仮想ポートにデータ（第１情報）を送信することができ、この第１情報の送信結果に基づいて複数の第２仮想ポートの中から一の第１仮想ポートの相手となる一の第２仮想ポートを選定し易くなる。
【００１３】
請求項３の発明は、第２情報処理装置において、第１情報送信手段からの第１情報を受信したときに当該第１情報に対する第１応答データを少なくともいずれかの第２仮想ポートを介して送信する第１応答データ送信手段が設けられている。そして、第１情報処理装置側の第１設定手段は、第１応答データ送信手段からの第１応答データを受信可能な第１応答データ受信手段を備えており、第１応答データ受信手段による第１応答データの受信結果に基づいて一の第１仮想ポートの通信相手となる一の第２仮想ポートを設定している。このようにすると、第１情報処理装置側では、いずれかの第１仮想ポート（一の第１仮想ポート）の通信相手となる相手方の第２仮想ポート（一の第２仮想ポート）を応答データ（第１応答データ）に基づいてその送信元の第２仮想ポートに定めることができ、仮想ポート同士の対応付けを簡易な通信処理で実現できる。
【００１４】
請求項４の発明は、第２情報処理装置に第２設定手段が設けられ、この第２設定手段が、第２仮想ポート割当手段によって割り当てられた他の第２仮想ポートから、第１情報処理装置において割り当てられた複数の第１仮想ポートに対して第２情報を送信する第２情報送信手段を備えている。更に、第１情報処理装置には、第２情報送信手段からの第２情報を受信したときに当該第２情報に対する第２応答データを少なくともいずれかの第１仮想ポートを介して送信する第２応答データ送信手段が設けられており、第２設定手段は、第２応答データ送信手段からの第２応答データを受信可能な第２応答データ受信手段を備えている。そして、第２応答データ受信手段による第２応答データの受信結果に基づいて他の第２仮想ポートの通信相手となる他の第１仮想ポートを設定している。
このようにすると、第２情報処理装置側では、上記一の第２仮想ポート以外の第２仮想ポート（他の第２仮想ポート）の通信相手となる第１仮想ポート（他の第１仮想ポート）を応答データ（第２答データ）に基づいてその送信元の仮想ポートに定めることができ、第２情報処理装置側での仮想ポート同士の対応付けを簡易な通信処理で実現できる。
【００１５】
請求項５の発明は、第１応答データ受信手段が複数の第２仮想ポートから第１応答データを受信した場合に一の第１仮想ポートについての通信相手の設定を中止する中止手段を有している。このようにすると、仮想ポート同士の対応付けが行いにくい場合に設定を中止して迅速に処理を終わらせることができ、不具合が生じる懸念のある設定を回避して迅速に次の対応をとることができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、第１実施形態に係る通信システムの構成を概念的に説明する説明図である。
【図２】図２は、図１の通信システムにおける一方の情報処理装置のハードウェア構成を例示するブロック図である。
【図３】図３は、図１の通信システムにおける他方の情報処理装置のハードウェア構成を例示するブロック図である。
【図４】図４（Ａ）は、設定処理で設定されるデータの登録例を概念的に説明する説明図であり、図４（Ｂ）は、固定設定での仮想ポートの対応付けを例示する説明図である。
【図５】図５は、コンピュータのデバイスドライバで行われる仮想ポートのオープン処理の流れを例示するフローチャートである。
【図６】図６は、コンピュータのデバイスドライバで行われる送信処理の流れを例示するフローチャートである。
【図７】図７は、コンピュータのデバイスドライバで行われる受信処理の流れを例示するフローチャートである。
【図８】図８は、図７の受信処理における受信・格納処理の流れを例示するフローチャートである。
【図９】図９は、携帯端末のデバイスドライバで行われる仮想ポートのオープン処理の流れを例示するフローチャートである。
【図１０】図１０は、携帯端末のデバイスドライバで行われる送信処理の流れを例示するフローチャートである。
【図１１】図１１は、携帯端末のデバイスドライバで行われる受信処理の流れを例示するフローチャートである。
【図１２】図１２は、図１１の受信処理における受信・格納処理の流れを例示するフローチャートである。
【発明を実施するための形態】
【００１７】
[第１実施形態]
以下、本発明の通信システムを具現化した第１実施形態について、図面を参照して説明する。
＜通信システムの概要＞
まず、図１〜図３を参照して、第１実施形態に係る通信システム１のハードウェア構成について説明する。図１は、第１実施形態に係る通信システムの構成を概念的に説明する説明図である。図２は、図１の通信システムにおける一方の情報処理装置のハードウェア構成を例示するブロック図である。図３は、図１の通信システムにおける他方の情報処理装置のハードウェア構成を例示するブロック図である。
【００１８】
図１に示すように、本実施形態に係る通信システム１は、２つの情報処理装置（コンピュータ２及び携帯端末２０）によって構成されており、各情報処理装置の内部に、アプリケーションプログラム（以下、アプリケーションとも称する）やオペレーティングシステム（以下、ＯＳとも称する）などが格納された構成をなしている。なお、本実施形態ではコンピュータ２は「第１情報処理装置」の一例に相当しており、携帯端末２０が「第２情報処理装置」の一例に相当している。
【００１９】
＜コンピュータの概要＞
コンピュータ２は、ＯＳ５０の制御の下、これらアプリケーションプログラムを実行することで、各種処理を行うように構成されている。なお、図１では、コンピュータ２で用いられる一部のアプリケーションプログラムＡ１、Ｂ１（図１では、アプリケーションＡ１、Ｂ１と略称）を例示しており、これら以外のアプリケーションプログラムについては図示を省略している。
【００２０】
コンピュータ２は、例えばパーソナルコンピュータとして構成されており、図２に示すように、ＣＰＵ３、ＲＯＭ４、ＲＡＭ５、ハードディスクドライブ（以下ＨＤＤとも称する）６を備えている。また、ＣＰＵ３には、バス１１を介して、出力部７、入力部８、通信部９が接続されている。なお、図示はしていないが、バス１１に接続された各回路とＣＰＵ１１との間の入出力制御を行う入出力コントローラなども設けられている。
【００２１】
出力部７は、表示装置やスピーカなどによって構成されており、ＣＰＵ３からの指令に基づいて各種画像や音声を出力する。また、入力部８は、キーボードやマウスなどによって構成されており、ユーザの操作に応じて各種信号を入力する。
【００２２】
通信部９は、アプリケーションプログラムなどによって生成されたデータを外部に送信したり、或いは外部装置（携帯端末２０等）からのデータを受信したりするように機能するものであり、通信インターフェース１３と、通信ポートＰ１とを備えた構成をなしている。通信ポートＰ１は、シリアルコネクタやパラレルコネクタとして構成されており、ＲＳ２３２ＣケーブルやＵＳＢケーブルなどの通信ケーブルを介して各種通信機器（例えば、携帯端末２０や、その他の情報処理装置等）が接続される構成をなしている。また、通信インターフェース１３は、通信ポートＰ１を介したデータの入出力制御を行うように構成されている。なお、本実施形態では、通信ポートＰ１が「第１通信ポート」の一例に相当する。また、ＣＰＵ３及び通信インターフェース１３が「第１通信手段」の一例に相当し、第１通信ポートＰ１を介してデータの送受信を行うように機能する。
【００２３】
ＣＰＵ３は、必要に応じ、上記入力部８にて入力された情報の取得、出力部７に対する出力制御、ＲＯＭ４、ＲＡＭ５、ＨＤＤ６に対する読み取り或いは書き込みの制御、或いは、通信部９の制御を行う。また、ＣＰＵ３は、ＨＤＤ６に格納されているプログラムやＨＤＤ６にインストールされたプログラム等をＲＡＭ５にロードして実行する機能を有している。
【００２４】
また、コンピュータ２で用いられるＯＳ５０は、図１のような構成をなしている。なお、図１では、後述するデバイスドライバがロードされた状態を示している。ＯＳ５０としては、例えば、Ｕｎｉｘ（登録商標）や、Ｌｉｎｕｘ、さらには、Ｗｉｎｄｏｗｓ（登録商標）、その他の任意のＯＳを採用することができる。図１では、その一例として、Ｗｉｎｄｏｗｓ（登録商標）のＮＴ系のＯＳが採用されたときの構成例を示している。
【００２５】
Ｗｉｎｄｏｗｓ（登録商標）のＮＴ系のＯＳであるＯＳ５０は、マイクロカーネル技術とオブジェクト指向技術をベースとし、各サービスを、サブシステムによって実装している。Ｗｉｎ３２サブシステム５１は、サブシステムの１つで、アプリケーションプログラムＡ１、Ｂ１に対して、各種のＡＰＩ（関数）を提供し、例えば、メモリ管理、プロセス管理、グラフィックス描画などを行う。Ｗｉｎ３２サブシステム５１は、アプリケーションプログラムＡ１、Ｂ１から、例えば、入出力関係のＡＰＩ関数が呼び出されると、そのＡＰＩ関数に応じた入出力要求を、ＩＯマネージャ５２に出力する。また、ＯＳ５０には、デバイスドライバが組み込まれるようになっており、後述するデバイスドライバ５３がロードされることで、図１のような階層構成で動作するようになっている。
【００２６】
＜携帯端末の概要＞
次に携帯端末２０について説明する。
図３に示す光学的情報読取装置２０は、主に、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示装置４６等のマイクロコンピュータ（以下「マイコン」という）系と、電源スイッチ４１、電池４９等の電源系と、から構成されている。
【００２７】
光学系は、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、ＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、ハウジングの読取口（図示略）を介して読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。
【００２８】
受光センサ２３は、読取対象物Ｒや情報コードＣに照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。受光センサ２３は、結像レンズ２７を介して入射する入射光を受光面２３ａで受光可能にプリント配線板（図示略）に実装されている。また、フィルタ２５は、反射光Ｌｒの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、反射光Ｌｒの波長相当を超える不要な光が受光センサ２３に入射することを抑制している。また、結像レンズ２７は、外部から読取口を介して入射する入射光を集光して受光センサ２３の受光面２３ａに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
【００２９】
マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インターフェース４８等から構成されている。このマイコン系は、その名の通り、マイコン（情報処理装置）として機能し得る制御回路４０およびメモリ３５と中心に構成されるもので、前述した光学系によって撮像された情報コードＣの画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路４０は、当該光学的情報読取装置２０の全体システムに関する制御も行っている。
【００３０】
光学系の受光センサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００３１】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またＲＯＭには、後述する読取処理、解析処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００３２】
制御回路４０は、光学的情報読取装置２０全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インターフェース等からなるもので、メモリ３５とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路４０は、内蔵された入出力インターフェースを介して種々の入出力装置（周辺装置）と接続可能に構成されており、本実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インターフェース４８等が制御回路４０に接続されている。通信インターフェース４８は、通信ポートＰ２（通信ポートＰ２は「第２通信ポート」の一例に相当）を介して上記コンピュータ２に接続される。なお、本実施形態では、制御回路４０及び通信インターフェース４８が「第２通信手段」の一例に相当し、第２通信ポートＰ２を介してデータの送受信を行うように機能する。
【００３３】
また、電源系は、電源スイッチ４１、電池４９等によって構成されており、制御回路４０による電源スイッチ４１のオンオフ制御により、電池４９から上述した各装置や各回路に供給される駆動電圧の導通や遮断が制御されている。
【００３４】
＜通信処理＞
次に、上記通信システム１で行われる通信処理について説明する。
本実施形態では、コンピュータ２及び携帯端末２０のいずれにもデバイスドライバが格納されており、このデバイスドライバがロードされることで各処理が実行されるようになっている。なお、デバイスドライバは、ユーザによる所定操作時、或いはコンピュータ２、携帯端末２０の起動時などにロードされるようになっている。なお、コンピュータ２で用いられるデバイスドライバも、携帯端末２０で用いられるデバイスドライバも同様の設定、処理を行うことができるようになっている。
【００３５】
（設定処理）
まず、設定処理について説明する。
本実施形態で用いられるデバイスドライバでは、予め設定処理を行うことができ、コンピュータ２に組み込まれるデバイスドライバも、携帯端末２０に組み込まれるデバイスドライバも、図４（Ａ）のような設定を行うことができるようになっている。例えば、コンピュータ２で用いられるデバイスドライバの場合には、コンピュータ２で設定可能な「仮想ポートの数」、「仮想ポートの番号」、「通信相手の確定方法」、通信相手の確定時間を設定値として登録できるようになっている。
【００３６】
ここで、「仮想ポートの数」は、ハードウェアとして存在する実際の通信ポートＰ１に割り当てることができる仮想ポート（第１仮想ポート）の数を意味しており、ユーザが入力部８にて数値を入力したときにその値を記憶して設定できるようになっている。なお、「仮想ポート」は、ソフトウェア的に存在する通信ポートであり、各アプリケーションプログラムは、通信時にいずれかの仮想ポートを占有し、ハードウェアである通信ポートＰ１を占有しないようになっている（他のアプリケーションプログラムと共有できるようになっている）。
【００３７】
また、「仮想ポートの番号」は、設定された「仮想ポートの数」の分だけ仮想ポートを割り当てたときの各仮想ポートの番号である。本実施形態で用いられるコンピュータ２では、例えば、「仮想ポートの数」「Ｎ」を入力して設定したときに、この数「Ｎ」の分だけ、ＣＯＭ１１、ＣＯＭ１２・・・ＣＯＭ１（Ｎ）と番号が付され、これら番号がメモリ（ＲＡＭ５、ＨＤＤ６等）に記憶されるようになっている。
【００３８】
「通信相手の確定方法」は、コンピュータ２に設けられた各仮想ポートの通信相手となる仮想ポート（図１の例では、携帯端末２０の仮想ポート）の確定方法を定めるものであり、ユーザが入力部８にていずれかを選択する入力を行うことにより「固定設定」「自動設定」のいずれかが選択されてその情報がメモリ（ＲＡＭ５、ＨＤＤ６等）に記憶されるようになっている。
【００３９】
「通信相手の確定時間」は、「通信相手の確定方法」で「自動設定」がなされたときに用いる後述のタイマの起動時間であり、ユーザが入力部８にて数値を入力したときにその値をメモリ（ＲＡＭ５、ＨＤＤ６等）に記憶して設定できるようになっている。本実施形態では、設定された「通信相手の確定時間Ｔ」が、Ｓ１５（図６）、Ｓ３９（図８）で起動されるタイマの起動時間として用いられ、時間Ｔを超えるとタイマ起動はストップするようになっている。
【００４０】
このような設定を行うことで、第１通信ポートＰ１に対して複数の仮想ポートが割り当てられるようになっており、このような設定処理、登録を行うＣＰＵ３、メモリ（ＲＡＭ５、ＨＤＤ６等）が「第１仮想ポート割当手段」の一例に相当し、第１通信ポートＰ１と対応付けて複数の第１仮想ポートを割り当てるように機能している。
【００４１】
また、携帯端末２０で用いられるデバイスドライバも同様であり、携帯端末２０で設定可能な「仮想ポートの数」、「仮想ポートの番号」、「通信相手の確定方法」（「固定設定」「自動設定」の別）、「通信相手の確定時間」を設定値として登録できるようになっている。なお、携帯端末２０でもコンピュータ２と同様の方法で設定値が入力される。また、携帯端末２０で設定される「通信相手の確定時間」は、Ｓ６５（図１０）、Ｓ８９（図１２）で起動されるタイマの起動時間として用いられ、この「通信相手の確定時間」を超えるとタイマ起動はストップするようになっている。
本実施形態では、このような設定処理、登録を行う制御回路４０、メモリ３５が「第２仮想ポート割当手段」の一例に相当し、第２通信ポートＰ２と対応付けて複数の第２仮想ポートを割り当てるように機能している。
【００４２】
（オープン処理）
次に、オープン処理について説明する。
コンピュータ２のデバイスドライバでは、コンピュータ２に設けられたいずれかのプログラム（例えばアプリケーションプログラムＡ１、Ｂ１）などから当該プログラムが通信に用いようとする通信ポート番号が指定されたときに図５に示すオープン処理が実行されるようになっている。本実施形態ではアプリケーションプログラムＡ１、Ｂ１が予め定められた設定により自動的に、或いはユーザの指定入力などによって手動で複数の仮想ポートのいずれかを指定できるようになっており、Ｓ１では、このような通信ポート番号が入力されたときに、指定された仮想ポートがオープン中であるか否かを判断する。Ｓ１でオープン中でないと判断される場合には、Ｓ１にてＮｏに進み、図４（Ａ）に示す設定情報から「通信相手の確定方法」を取得する（Ｓ２）。そして、指定されている仮想ポート（Ｓ１でオープン状態を判断した仮想ポート）をオープン状態に設定する。なお、仮想ポートをオープン状態に設定する方法としては、例えば、仮想ポートのポート番号と対応付けてオープン状態である旨を示すフラグを付すといった方法が挙げられる。一方、指定された仮想ポートが既にオープン中である場合（例えば、既に指定仮想ポートに対してオープン状態を示すフラグが付されている場合）には、Ｓ１でＹｅｓに進んでエラー処理を行う（Ｓ４）。Ｓ４のエラー処理は、例えばコンピュータ２の表示画面にエラーである旨を表示する処理などが行われる。
【００４３】
携帯端末２０のデバイスドライバも同様であり、いずれかのプログラム（例えばアプリケーションプログラムＡ２、Ｂ２）から当該プログラムが通信に用いようとする通信ポート番号が指定されたときに図５と同様のオープン処理（図９）が実行されるようになっている。携帯端末２０でも、例えばアプリケーションプログラムＡ２、Ｂ２が自動的に或いはユーザの指定によって複数の仮想ポートのいずれかを指定できるようになっており、図９のＳ５１では、このような通信ポート番号が入力されたときに、指定された仮想ポートがオープン中であるか否かを判断する。そして、オープン中でない場合には、Ｓ５１にてＮｏに進み、図４（Ａ）と同様の設定情報から通信相手の確定方法を取得する（Ｓ５２）。そして、その仮想ポート（Ｓ５１でオープン状態が判断された仮想ポート）をオープン状態に設定する。なお、仮想ポートをオープン状態に設定する方法もコンピュータ２と同様であり、例えば、仮想ポートのポート番号と対応付けてオープン状態である旨を示すフラグを付すといった方法が挙げられる。一方、指定された仮想ポートが既にオープン中である場合には、Ｓ５１でＹｅｓに進んでエラー処理を行う（Ｓ５４）。
【００４４】
なお、図５、図９の処理によって設定された仮想ポートのオープン状態は、通信処理の終了後の所定時期（例えば、ユーザによる所定操作がなされたとき、或いはコンピュータの起動終了時など）にクローズ状態（オープン中である旨のフラグが解除された状態）とされるが、このクローズ処理については詳細な説明は省略する。
【００４５】
上記のようなオープン処理をコンピュータ２及び携帯端末２０のそれぞれで行うことにより、通信処理を行おうとするプログラムに対して仮想ポートが対応付けられることとなる。例えば、コンピュータ２においてアプリケーションプログラムＡ１、Ｂ１がいずれも通信を行おうとする場合には、アプリケーションプログラムＡ１に対していずれかの仮想ポートが対応付けられてオープン状態に設定され、同様にアプリケーションプログラムＢ１に対していずれかの仮想ポートが対応付けられてオープン状態に設定される。また、携帯端末２０においてアプリケーションプログラムＡ２、Ｂ２がいずれも通信を行おうとする場合には、アプリケーションプログラムＡ２に対していずれかの仮想ポートが対応付けられてオープン状態に設定され、同様にアプリケーションプログラムＢ２に対していずれかの仮想ポートが対応付けられてオープン状態に設定されることになる。
【００４６】
（コンピュータからの送信処理）
次に、送信処理について説明する。本実施形態に係る通信システム１では、コンピュータ２及び携帯端末２０のいずれでも同様の流れ（図６、図１０）で送信処理が行われるようになっており、まず、図６を参照してコンピュータ２側のデバイスドライバ５３で行われる送信処理について説明する。
【００４７】
コンピュータ２のデバイスドライバ５３では、送信処理として、初期送信処理（いずれかのアプリケーションプログラムで通信処理を行うときの通信相手の仮想ポートを指定するための送信処理）と、応答データ送信処理（通信相手からの初期送信に対する応答データの送信処理）と、データ送信処理（アプリケーションプログラムで生成された各種データの送信処理）とが行われるようになっている。
【００４８】
図６の送信処理は、アプリケーションプログラムから指示があった場合や携帯端末２０からデータ送信があった場合などに実行され、いずれの送信処理を行う場合でも、まず、設定値を取得する処理を行う（Ｓ１１）。Ｓ１１の処理では、図４（Ａ）の設定データで登録されている「通信相手の確定方法」を取得する。「通信相手の確定方法」としては、上述したように、通信相手を固定相手として定める設定（固定設定）と、通信相手を所定の手順に従って自動で定める設定（自動設定）とを選択できるようになっており、Ｓ１１では登録されているいずれかの設定を取得する。
【００４９】
Ｓ１１の後には、設定されている「通信相手の確定方法」が「自動」であって、且つ通信相手となる携帯端末２０の仮想ポート（第２仮想ポート）が既に確定済みか否かを判断する（Ｓ１２）。通信相手の確定方法が「自動」であって、且つ通信相手となる携帯端末２０の仮想ポートが既に確定済みである場合（既に、Ｓ１７（後述）やＳ３７（後述）で通信相手が決定している場合）には、Ｓ１２にてＹｅｓに進む。Ｓ１２にてＹｅｓに進む場合とは、即ち、図６の送信処理でデータ送信を行うアプリケーションプログラムで用いる仮想ポート（第１仮想ポート）と、この仮想ポートの通信相手となる携帯端末２０の仮想ポート（第２仮想ポート）とが既に対応付けられている場合であり、この場合には携帯端末２０に送信する送信データのパケットを作成し（Ｓ１９）、その通信相手となる携帯端末２０の仮想ポートにデータを送信する（Ｓ２０）。
【００５０】
一方、「通信相手の確定方法」が「固定」の場合、又は、「通信相手の確定方法」が「自動」であって且つ通信相手となる携帯端末２０の仮想ポートが未確定の場合には、Ｓ１２にてＮｏに進む。更に、「通信相手の確定方法」が「固定」であるか否かを判断し（Ｓ１３）、「固定」の場合にはＳ１３にてＹｅｓに進む。Ｓ１３にてＹｅｓに進む場合も、図６の送信処理でデータ送信を行うアプリケーションプログラムで用いる仮想ポート（第１仮想ポート）と、この仮想ポートの通信相手となる携帯端末２０の仮想ポート（第２仮想ポート）とが既に対応付けられている場合であり、この場合には、携帯端末２０に送信する送信データのパケットを作成し（Ｓ１９）、通信相手となる携帯端末２０の仮想ポート（固定設定で定められている通信ポート）にデータを送信する（Ｓ２０）。
【００５１】
通信相手の確定方法が「固定」の場合、例えば図４（Ｂ）のように、コンピュータ２の通信ポートＰ１に割り当てられる仮想ポート（第１仮想ポート）それぞれに対して携帯端末２０の通信ポートＰ２に割り当てられる仮想ポートが予め対応付けられて設定されており、このような固定設定に基づき、図６の送信処理を行おうとしている仮想ポート（第１仮想ポート）に対応付けられている相手方の仮想ポート（第２仮想ポート）に対してデータを送信することになる。例えば、図４（Ｂ）の例では、当該送信処理（図６）でデータ送信を行うアプリケーションプログラムで仮想ポートＣＯＭ１１が指定され、「固定設定」となっているときには仮想ポートＣＯＭ１１に対応付けられた相手方の仮想ポートＣＯＭ２１にデータを送信することになる。なお、図４（Ｂ）のような固定設定は、例えばユーザによる入力などによって予め設定しておくことができる。
【００５２】
一方、「通信相手の確定方法」が「自動」であって且つ通信相手となる携帯端末２０の仮想ポートが未確定の場合にはＳ１３にてＮｏに進み、タイマが起動中か否かを判断する（Ｓ１４）。本実施形態では、後述のＳ３９（図８）の処理によってタイマが起動されるようになっており、このようなタイマ起動がなされている場合にはＳ１４にてＹｅｓに進む。
【００５３】
なお、Ｓ１４でＹｅｓに進む場合、（Ｓ３９（図８）でタイマ起動がなされる場合）とは、「自動設定」の場合に相手方の携帯端末２０のいずれかの仮想ポート（第２仮想ポート）から初期送信処理（図１０のＳ６６、Ｓ７０での問い合わせ情報の送信）がなされた場合であって且つその情報送信がなされた仮想ポート（第２仮想ポート）の通信相手となるコンピュータ２の仮想ポート（第１仮想ポート）が未確定の場合である。そして、その初期送信処理を受けたアプリケーションプログラムが初期送信処理の送信元の仮想ポート（第２仮想ポート）に応答データを送信する場合である。
【００５４】
本実施形態では、携帯端末２０からの初期送信処理（携帯端末２０のいずれかの仮想ポートからコンピュータ２の全仮想ポートに対してなされる送信処理）を受信してから一定期間（タイマ起動期間（本実施形態では、図４の通信相手の確定時間Ｔがタイマ起動時間に相当））の間、いずれかのプログラム（例えば携帯端末２０からの問い合わせ情報で指定されたプログラム等）から当該情報送信に対する応答データを送信できるようになっており、このような応答データを送信する場合にはＳ１４にてＹｅｓに進む。この場合、携帯端末２０からの初期送信処理のデータには、送信元の仮想ポート（第２仮想ポート）を特定するデータが含まれているため、その送信元の仮想ポート（第２仮想ポート）と、応答データを送信しようとする仮想ポート（応答データを送信しようとするプログラムに対応付けられた仮想ポート（第１仮想ポート））とを対応付けて記憶する。これ以降、これら対応付けられた仮想ポート間で通信が行われることとなる。
【００５５】
例えば、情報送信元の仮想ポートとして携帯端末２０の仮想ポートＣＯＭ２１が用いられ、この仮想ポートＣＯＭ２１から設定用送信処理（Ｓ６６、Ｓ７０：図１０）としてコンピュータ２の仮想ポートＣＯＭ１１、１２・・・１Ｎに対し情報送信がなされた場合、応答を行うプログラムがアプリケーションプログラムＡ１のときには、アプリケーションプログラムＡ１で用いる仮想ポート（上記オープン処理によってアプリケーションプログラムＡ１に対応付けられた仮想ポート）を対応付けて記憶する。例えば、アプリケーションプログラムＡ１で用いる仮想ポートとして仮想ポートＣＯＭ１１が対応付けられている場合には、この仮想ポートＣＯＭ１１の通信先としてＣＯＭ２１を指定する情報を生成しコンピュータ２内に記憶しておく。これにより、これ以降、仮想ポートＣＯＭ１１を介して通信を行う場合には仮想ポートＣＯＭ２１が指定されて仮想ポートＣＯＭ２１との間で通信が行われることとなる。
【００５６】
また、このようにＳ１４でＹｅｓに進む場合、通信相手となる仮想ポートＣＯＭ２１に対し、Ｓ１７で対応付けた仮想ポートＣＯＭ１１の情報を含んだ応答データを生成し（Ｓ１８）、それをデータ送信する（Ｓ２０）。すると、携帯端末２０側では、この応答データを受信したときに、後述するＳ８７（図１２）の処理によって当該応答データを解析し、仮想ポートＣＯＭ２１の通信相手として当該応答データに含まれる仮想ポートＣＯＭ１１を指定することとなる。これにより、コンピュータ２及び携帯端末２０のいずれにおいても仮想ポートＣＯＭ１１と仮想ポートＣＯＭ２１とが互いに通信相手として対応付けられることになる。
【００５７】
一方、Ｓ１４にてタイマ起動中でないと判断される場合には、Ｓ１４にてＮｏに進み、タイマを起動し（Ｓ１５）、携帯端末２０に送信するデータを生成する。Ｓ１４でＮｏに進む場合とは、即ち、「通信相手の確定方法」が「自動」であり、且つ当該送信処理が、いずれかのアプリケーションプログラムによって仮想ポートがオープンされた後に行われる初期送信処理（当該アプリケーションプログラムで通信処理を行うときの通信相手の仮想ポートを指定するための送信処理）として行われるものであるため、この場合、Ｓ１６では、携帯端末２０の全仮想ポートに対する情報（問い合わせ情報）を生成し、これを携帯端末２０の全仮想ポートに送信する（Ｓ２０）。例えば、アプリケーションプログラムＡ１によって仮想ポートＣＯＭ１１が指定されており、この仮想ポートＣＯＭ１１を送信元として初期送信処理を行う場合には、携帯端末２０の全仮想ポートに対する情報（問い合わせ情報）として、送信元の仮想ポートＣＯＭ１１の情報を含んだデータを生成し（Ｓ１６）、これを携帯端末２０の全仮想ポートに送信する（Ｓ２０）。
【００５８】
なお、本実施形態では、ＣＰＵ３が「第１設定手段」「第１情報送信手段」の一例に相当し、第１仮想ポート割当手段によって割り当てられた一の第１仮想ポートから、携帯端末２０において割り当てられている複数の第２仮想ポートに対して第１情報を送信するように機能している。
【００５９】
（携帯端末での受信処理）
次に、上記送信処理（コンピュータ２からの送信処理）に対する携帯端末２０側での受信処理について説明する。
携帯端末２０のデバイスドライバ６３（図１）では、外部機器からある仮想ポートに対し送信があった場合、図１１のような受信処理が行われるようになっており、この図１１の処理は仮想ポート毎に行うことができるようになっている。例えば、仮想ポートＣＯＭ２１（第２仮想ポート）がコンピュータ２からデータを受信した場合、受信対象となる当該仮想ポートＣＯＭ２１がオープン中か否かを判断する（Ｓ７１）。そして当該仮想ポートＣＯＭ２１がオープン中でない場合には、Ｓ７１にてＮｏに進み、当該処理を終了する。一方、仮想ポートＣＯＭ２１がオープン中である場合には、この仮想ポートＣＯＭ２１（第２仮想ポート）の通信相手となるコンピュータ２の仮想ポート（第１仮想ポート）が確定済みか否かを判断する。
【００６０】
データを受信した仮想ポートＣＯＭ２１の通信相手が確定済みと判断される場合には、Ｓ７２にてＹｅｓに進み、その仮想ポートＣＯＭ２１で受信したデータが仮想ポートＣＯＭ２１（第２仮想ポート）に対応付けられている仮想ポート（第１仮想ポート）からのデータであるか否かを判断する（Ｓ７３）。そして、仮想ポートＣＯＭ２１（第２仮想ポート）に対応付けられている仮想ポート（第１仮想ポート）からのデータである場合にはＳ７３にてＹｅｓに進み、仮想ポートＣＯＭ２１に対応付けられたバッファにそのデータ（仮想ポートＣＯＭ２１が受信したデータ）を格納する。この場合、バッファに格納されたデータは仮想ポートＣＯＭ２１を使用するプログラム（携帯端末２０において仮想ポートＣＯＭ２１を使用するものとして対応付けられたプログラム）に渡されることとなる。一方、仮想ポートＣＯＭ２１（第２仮想ポート）が受信したデータが、仮想ポートＣＯＭ２１に対応付けられている仮想ポート（第１仮想ポート）からのデータでない場合には、Ｓ７３にてＮｏに進み、当該データを廃棄する（Ｓ７５）。
【００６１】
Ｓ７２において、データを受信した仮想ポートＣＯＭ２１の通信相手が確定済みではない判断される場合には、Ｓ７２にてＮｏに進み、所定の受信・格納処理を行う（Ｓ７６）。
Ｓ７６の受信・格納処理は、例えば図１２のような流れとなっており、まず、設定値の取得処理を行う（Ｓ８１）。この処理では、携帯端末２０において図４（Ａ）と同様に設定された設定値（「通信相手の確定方法」「通信相手の確定時間」）を取得し、既に仮想ポート同士が対応付けられている場合にはそのデータも取得する。例えば、既に仮想ポートＣＯＭ２１の通信相手として仮想ポートＣＯＭ１１が対応付けられてメモリ３５に記憶されている場合には、このような設定情報も読み出す。
【００６２】
Ｓ８１の後には、Ｓ８１で取得した設定値に基づき、携帯端末２０での「通信相手の確定方法」の設定が「固定」であるか否かを判断し、「固定」である場合には、Ｓ８２にてＹｅｓに進み、受信したデータが当該仮想ポート（第２仮想ポート）に対応付けられている固定の仮想ポート（第１仮想ポート）からのデータであるか否かを判断する（Ｓ８３）。そして、受信データがその受信した仮想ポート（第２仮想ポート）に対応付けられている固定の仮想ポート（第１仮想ポート）からのデータである場合にはＳ８３にてＹｅｓに進み、その受信した当該仮想ポート（第２仮想ポート）に対応付けられたバッファにその受信データを格納する（Ｓ８４）。この場合、バッファに格納されたデータは当該仮想ポートを使用するプログラムに渡されることとなる。一方、受信データがその受信した仮想ポート（第２仮想ポート）に対応付けられた仮想ポート（第１仮想ポート）からのデータでない場合には、Ｓ８３にてＮｏに進み、データを廃棄する（Ｓ８５）。
【００６３】
一方、「通信相手の確定方法」の設定が「固定」でなく「自動」である場合、Ｓ８２にてＮｏに進み、タイマ起動中か否かを判断する（Ｓ８６）。本実施形態で用いられる携帯端末２０では、図６と同様の図１０の送信処理において、初期送信処理（Ｓ６６、Ｓ７０）を行う場合に、その初期送信処理を行う仮想ポートと対応付けてタイマを起動させており（Ｓ６５）、このタイマが起動中である場合には初期送信処理（Ｓ６６、Ｓ７０）に対する応答データであると判断できるため、その応答データに含まれる通信相手の仮想ポート（第１仮想ポート）を、当該受信処理に係る仮想ポート（第２仮想ポート）の通信相手として決定する（Ｓ８７）。そして、当該受信処理に係る仮想ポート（第２仮想ポート）に対応付けられた受信バッファに受信したデータを格納する（Ｓ８８）。例えば、コンピュータ２からのデータを受信した仮想ポートが仮想ポートＣＯＭ２１であり、応答データに含まれる通信相手の仮想ポートが仮想ポートＣＯＭ１１である場合には、仮想ポートＣＯＭ２１の通信相手として仮想ポートＣＯＭ１１を登録し、このような情報をメモリ３５に記憶しておく。
【００６４】
一方、Ｓ８６にてタイマ起動中でないと判断される場合には、Ｓ８６にてＮｏに進み、当該受信処理に係る仮想ポート（データを受信した仮想ポート）と対応付けてタイマを起動する処理を行う（Ｓ８９）。この場合、コンピュータ２で行われた初期送信処理（Ｓ１６、Ｓ２０：図６）のデータを受信したと判断できるため、これを当該受信処理に係る仮想ポートに対応付けられたバッファに格納する。なお、このバッファに格納されたデータは、当該受信処理に係る仮想ポートに対応付けられたプログラムによって取得され、格納データに対して応答データを返信するか否かは対応するプログラムによって判断される。例えば、アプリケーションプログラム毎に応答対象となるべきプログラムを定めておくことができ、Ｓ９０にてバッファに格納されるデータが、そのバッファからのデータを取得するアプリケーションプログラムに対応するプログラム（応答対象のプログラム）からのデータである場合に応答データを返信するといった方法を用いることができる。
【００６５】
図１１、図１２のような受信処理は、携帯端末２０の各仮想ポートがデータを受信する毎に行われ、複数の仮想ポートがデータを受信した場合には、各仮想ポート毎に図１１、図１２の処理が行われることとなる。
なお、本実施形態では、Ｓ６７、Ｓ６８を実行可能な携帯端末３０の制御回路４０が「第１応答データ送信手段」の一例に相当し、第１情報送信手段からの第１情報（問い合わせ情報）を受信したときに当該第１情報に対する第１応答データを少なくともいずれかの第２仮想ポートを介して送信するように機能する。また、コンピュータ２のＣＰＵ３は、「第１応答データ受信手段」の一例に相当し、この第１応答データ送信手段からの第１応答データを受信するように機能しており、更にコンピュータ２では、後述するように、第１応答データ受信手段による第１応答データの受信結果に基づいて「一の第１仮想ポート」の通信相手となる「一の第２仮想ポート」を設定している（図８のＳ３７：後述）。
【００６６】
（携帯端末からの送信処理）
なお、上記説明では、主として、コンピュータ２から情報を送信し、携帯端末２０でこれを受信する場合を説明したが、これとは逆の処理（携帯端末２０から情報を送信し、コンピュータ２でこれを受信する処理）も行われるようになっている。
【００６７】
まず、携帯端末２０からの送信処理について説明する。携帯端末２０のデバイスドライバ６３では、送信処理として、初期送信処理（いずれかのアプリケーションプログラムで通信処理を行うときの通信相手の仮想ポートを指定するための送信処理）と、応答データ送信処理（通信相手からの初期送信に対する応答データの送信処理）と、データ送信処理（アプリケーションプログラムで生成された各種データの送信処理）とが行われるようになっている。
【００６８】
図１０の送信処理は、アプリケーションプログラムから指示があった場合やコンピュータ２からデータ送信があった場合などに実行され、いずれの送信処理を行う場合でも、まず、設定値を取得する処理を行う（Ｓ６１）。Ｓ６１の処理では、図４（Ａ）と同様の設定データから「通信相手の確定方法」を取得する。「通信相手の確定方法」としては、上述したように、通信相手を固定相手として定める設定（固定設定）と、通信相手を所定の手順に従って自動で定める設定（自動設定）とを選択できるようになっており、Ｓ６１では登録されているいずれかの設定を取得する。
【００６９】
Ｓ６１の後には、設定されている「通信相手の確定方法」が「自動」であって、且つ通信相手となるコンピュータ２の仮想ポート（第１仮想ポート）が既に確定済みか否かを判断する（Ｓ６２）。通信相手の確定方法が「自動」であって、且つ通信相手となるコンピュータ２の仮想ポートが既に確定済みである場合（既に、Ｓ６７やＳ８７（図１２）で通信相手が決定している場合）には、Ｓ６２にてＹｅｓに進む。この場合にはコンピュータ２に送信する送信データのパケットを作成し（Ｓ６９）、その通信相手となるコンピュータ２の仮想ポートにデータを送信する（Ｓ７０）。
【００７０】
一方、「通信相手の確定方法」が「固定」の場合、又は、「通信相手の確定方法」が「自動」であって且つ通信相手となるコンピュータ２の仮想ポートが未確定の場合には、Ｓ６２にてＮｏに進む。更に、「通信相手の確定方法」が「固定」であるか否かを判断し（Ｓ６３）、「固定」の場合にはＳ６３にてＹｅｓに進む。Ｓ６３にてＹｅｓに進む場合も、コンピュータ２に送信する送信データのパケットを作成し（Ｓ６９）、通信相手となるコンピュータ２の仮想ポート（固定設定で定められている通信ポート）にデータを送信する（Ｓ７０）。
【００７１】
通信相手の確定方法が「固定」の場合、例えば図４（Ｂ）のように、コンピュータ２の通信ポートＰ１に割り当てられる仮想ポート（第１仮想ポート）それぞれに対して携帯端末２０の通信ポートＰ２に割り当てられる仮想ポートが予め対応付けられて設定されており、このような固定設定に基づき、図１０の送信処理を行おうとしている仮想ポート（第２仮想ポート）に対応付けられている相手方の仮想ポート（第１仮想ポート）に対してデータを送信することになる。
【００７２】
一方、「通信相手の確定方法」が「自動」であって且つ通信相手となるコンピュータ２の仮想ポートが未確定の場合にはＳ６３にてＮｏに進み、タイマが起動中か否かを判断する（Ｓ６４）。本実施形態では、Ｓ８９（図１２）の処理によってタイマが起動されるようになっており、このようなタイマ起動がなされている場合にはＳ６４にてＹｅｓに進む。なお、Ｓ６４でＹｅｓに進む場合、（Ｓ８９（図１２）でタイマ起動がなされる場合）とは、「自動設定」の場合に相手方のコンピュータ２のいずれかの仮想ポート（第１仮想ポート）から初期送信処理（図６のＳ１６、Ｓ２０での問い合わせ情報の送信）がなされた場合であって且つその情報送信がなされた仮想ポート（第１仮想ポート）の通信相手となる携帯端末２０の仮想ポート（第２仮想ポート）が未確定の場合である。そして、その初期送信処理を受けたアプリケーションプログラムが初期送信処理の送信元の仮想ポート（第１仮想ポート）に応答データを送信する場合である。
【００７３】
また、本実施形態では、コンピュータ２からの初期送信処理（コンピュータ２のいずれかの仮想ポートから携帯端末２０の全仮想ポートに対してなされる送信処理）を受信してから一定期間（タイマ起動期間（本実施形態では図４（Ａ）と同様に設定された「通信相手の確定時間」がタイマ起動時間に相当））の間、いずれかのプログラム（例えばコンピュータ２からの問い合わせ情報で指定されたプログラム等）から当該情報送信に対する応答データを送信できるようになっており、このような応答データを送信する場合にはＳ６４にてＹｅｓに進む。この場合、コンピュータ２からの初期送信処理のデータには、送信元の仮想ポート（第１仮想ポート）を特定するデータが含まれているため、その送信元の仮想ポート（第１仮想ポート）と、応答データを送信しようとする仮想ポート（応答データを送信しようとするプログラムに対応付けられた仮想ポート（第２仮想ポート））とを対応付けて記憶する（Ｓ６７）。これ以降、これら対応付けられた仮想ポート間で通信が行われることとなる。
【００７４】
例えば、情報送信元の仮想ポートとしてコンピュータ２の仮想ポートＣＯＭ１２が用いられ、この仮想ポートＣＯＭ１２から設定用送信処理（Ｓ１６、Ｓ２０：図６）として携帯端末２０の仮想ポートＣＯＭ２１、２２・・・２Ｎに対し情報送信がなされた場合、応答を行うプログラムがアプリケーションプログラムＢ２のときには、アプリケーションプログラムＢ２で用いる仮想ポート（上記オープン処理によってアプリケーションプログラムＢ２に対応付けられた仮想ポート）を対応付けて記憶する。例えば、アプリケーションプログラムＢ２で用いる仮想ポートとして仮想ポートＣＯＭ２２が対応付けられている場合には、この仮想ポートＣＯＭ２２の通信先としてＣＯＭ１２を指定する情報を生成し携帯端末２０内に記憶しておく。これにより、これ以降、仮想ポートＣＯＭ２２を介して通信を行う場合には仮想ポートＣＯＭ１２が指定されて仮想ポートＣＯＭ２２との間で通信が行われることとなる。
【００７５】
また、このようにＳ６４でＹｅｓに進む場合、通信相手となる仮想ポートＣＯＭ１２に対し、Ｓ６７で対応付けた仮想ポートＣＯＭ２２の情報を含んだ応答データを生成し（Ｓ６８）、それをデータ送信する（Ｓ７０）。すると、コンピュータ２側では、この応答データを受信したときに、後述するＳ３７（図８）の処理によって当該応答データを解析し、仮想ポートＣＯＭ１２の通信相手として当該応答データに含まれる仮想ポートＣＯＭ２２を指定することとなる。これにより、コンピュータ２及び携帯端末２０のいずれにおいても仮想ポートＣＯＭ１２と仮想ポートＣＯＭ２２とが互いに通信相手として対応付けられることになる。
【００７６】
一方、Ｓ６４にてタイマ起動中でないと判断される場合には、Ｓ６４にてＮｏに進み、タイマを起動し（Ｓ６５）、コンピュータ２に送信するデータを生成する。Ｓ６４でＮｏに進む場合とは、即ち、「通信相手の確定方法」が「自動」であり、且つ当該送信処理が、いずれかのアプリケーションプログラムによって仮想ポートがオープンされた後に行われる初期送信処理（当該アプリケーションプログラムで通信処理を行うときの通信相手の仮想ポートを指定するための送信処理）として行われるものであるため、この場合、Ｓ６６では、コンピュータ２の全仮想ポートに対する情報（問い合わせ情報であり「第２情報」の一例に相当）を生成し、これをコンピュータ２の全仮想ポートに送信する（Ｓ７０）。例えば、アプリケーションプログラムＡ１によって仮想ポートＣＯＭ１１が指定されており、この仮想ポートＣＯＭ１１を送信元として初期送信処理を行う場合には、携帯端末２０の全仮想ポートに対する情報（問い合わせ情報）として、送信元の仮想ポートＣＯＭ１１の情報を含んだデータを生成し（Ｓ１６）、これを携帯端末２０の全仮想ポートに送信する（Ｓ２０）。
【００７７】
なお、本実施形態では、制御回路４０が「第２設定手段」「第２情報送信手段」の一例に相当し、第２仮想ポート割当手段によって割り当てられた他の第２仮想ポートから、コンピュータ２において割り当てられている複数の第１仮想ポートに対して第２情報を送信するように機能している。
【００７８】
（コンピュータでの受信処理）
次に、上記送信処理（携帯端末２０からの送信処理）に対するコンピュータ２側での受信処理について説明する。
コンピュータ２のデバイスドライバ５３（図１）では、外部機器からある仮想ポートに対し送信があった場合、図７のような受信処理が行われるようになっており、この図７の処理は仮想ポート毎に行うことができるようになっている。例えば、仮想ポートＣＯＭ１２（第１仮想ポート）が携帯端末２０からデータを受信した場合、受信対象となる当該仮想ポートＣＯＭ１２がオープン中か否かを判断する（Ｓ２１）。そして当該仮想ポートＣＯＭ１２がオープン中でない場合には、Ｓ２１にてＮｏに進み、当該処理を終了する。一方、仮想ポートＣＯＭ１２がオープン中である場合には、この仮想ポートＣＯＭ１２（第１仮想ポート）の通信相手となる携帯端末２０の仮想ポート（第２仮想ポート）が確定済みか否かを判断する。
【００７９】
データを受信した仮想ポートＣＯＭ１２の通信相手が確定済みと判断される場合には、Ｓ２２にてＹｅｓに進み、その仮想ポートＣＯＭ１２で受信したデータが仮想ポートＣＯＭ１２（第１仮想ポート）に対応付けられている仮想ポート（第２仮想ポート）からのデータであるか否かを判断する（Ｓ２３）。そして、仮想ポートＣＯＭ１２（第１仮想ポート）に対応付けられている仮想ポート（第２仮想ポート）からのデータである場合にはＳ２３にてＹｅｓに進み、仮想ポートＣＯＭ１２に対応付けられたバッファにそのデータ（仮想ポートＣＯＭ１２が受信したデータ）を格納する（Ｓ２４）。この場合、バッファに格納されたデータは仮想ポートＣＯＭ１２を使用するプログラム（コンピュータ２において仮想ポートＣＯＭ１２を使用するものとして対応付けられたプログラム）に渡されることとなる。一方、仮想ポートＣＯＭ１２（第１仮想ポート）が受信したデータが、仮想ポートＣＯＭ１２に対応付けられている仮想ポート（第２仮想ポート）からのデータでない場合には、Ｓ２３にてＮｏに進み、当該データを廃棄する（Ｓ２５）。
【００８０】
Ｓ２２において、データを受信した仮想ポートＣＯＭ１２の通信相手が確定済みではない判断される場合には、Ｓ２２にてＮｏに進み、所定の受信・格納処理を行う（Ｓ２６）。
Ｓ２６の受信・格納処理は、例えば図８のような流れとなっており、まず、設定値の取得処理を行う（Ｓ３１）。この処理では、コンピュータ２において図４（Ａ）のように設定された設定値（「通信相手の確定方法」「通信相手の確定時間」）を取得し、既に仮想ポート同士が対応付けられている場合にはそのデータも取得する。例えば、既に仮想ポートＣＯＭ１２の通信相手として仮想ポートＣＯＭ２２が対応付けられてメモリ（ＲＡＭ５やＨＤＤ６等）に記憶されている場合には、このような設定情報も読み出す。
【００８１】
Ｓ３１の後には、Ｓ３１で取得した設定値に基づき、コンピュータ２での「通信相手の確定方法」の設定が「固定」であるか否かを判断し、「固定」である場合には、Ｓ３２にてＹｅｓに進み、受信したデータが当該仮想ポート（第１仮想ポート）に対応付けられている固定の仮想ポート（第２仮想ポート）からのデータであるか否かを判断する（Ｓ３３）。そして、受信データがその受信した仮想ポート（第１仮想ポート）に対応付けられている固定の仮想ポート（第２仮想ポート）からのデータである場合にはＳ３３にてＹｅｓに進み、その受信した当該仮想ポート（第１仮想ポート）に対応付けられたバッファにその受信データを格納する（Ｓ３４）。この場合、バッファに格納されたデータはこのデータを受信した仮想ポートを使用するプログラムに渡されることとなる。一方、受信データがその受信した仮想ポート（第１仮想ポート）に対応付けられた仮想ポート（第２仮想ポート）からのデータでない場合には、Ｓ３３にてＮｏに進み、データを廃棄する（Ｓ３５）。
【００８２】
一方、「通信相手の確定方法」の設定が「固定」でなく「自動」である場合、Ｓ３２にてＮｏに進み、タイマ起動中か否かを判断する（Ｓ３６）。本実施形態で用いられるコンピュータ２では、上述の図６の送信処理において、初期送信処理（Ｓ１６、Ｓ２０）を行う場合に、その初期送信処理を行う仮想ポートと対応付けてタイマを起動させており（Ｓ１５）、このタイマが起動中である場合には初期送信処理（Ｓ１６、Ｓ２０）に対する応答データであると判断できるため、その応答データに含まれる通信相手の仮想ポート（第２仮想ポート）を、当該受信処理に係る仮想ポート（第１仮想ポート）の通信相手として決定する（Ｓ３７）。そして、当該受信処理に係る仮想ポート（第１仮想ポート）に対応付けられた受信バッファに受信したデータを格納する（Ｓ３８）。例えば、携帯端末２０からのデータを受信した仮想ポートが仮想ポートＣＯＭ１２であり、応答データに含まれる通信相手の仮想ポートが仮想ポートＣＯＭ２２である場合には、仮想ポートＣＯＭ１２の通信相手として仮想ポートＣＯＭ２２を登録し、このような情報をメモリ（ＲＡＭ５、ＨＤＤ６等）に記憶しておく。
【００８３】
一方、Ｓ３６にてタイマ起動中でないと判断される場合には、Ｓ３６にてＮｏに進み、当該受信処理に係る仮想ポート（データを受信した仮想ポート）と対応付けてタイマを起動する処理を行う（Ｓ３９）。この場合、携帯端末２０で行われた初期送信処理（Ｓ６６、Ｓ７０：図１０）のデータを受信したと判断できるため、これを当該受信処理に係る仮想ポートに対応付けられたバッファに格納する。なお、このバッファに格納されたデータは、当該受信処理に係る仮想ポートに対応付けられたプログラムによって取得され、格納データに対して応答データを返信するか否かは対応するプログラムによって判断される。例えば、アプリケーションプログラム毎に応答対象となるべきプログラムを定めておくことができ、Ｓ４０にてバッファに格納されるデータが、そのバッファからのデータを取得するアプリケーションプログラムに対応するプログラム（応答対象のプログラム）からのデータである場合に応答データを返信するといった方法を用いることができる。
【００８４】
図７、図８のような受信処理は、コンピュータ２の各仮想ポートがデータを受信する毎に行われ、複数の仮想ポートがデータを受信した場合には、各仮想ポート毎に図７、図８の処理が行われることとなる。
なお、本実施形態では、Ｓ１７、Ｓ１８を実行可能なコンピュータ２のＣＰＵ３が「第２応答データ送信手段」の一例に相当し、第２情報送信手段からの第２情報（問い合わせ情報）を受信したときに当該第２情報に対する第２応答データを少なくともいずれかの第１仮想ポートを介して送信するように機能する。また、このような第２応答データを受信する携帯端末２０の制御回路４０は、「第２応答データ受信手段」の一例に相当しており、上述のように携帯端末２０では、この第２応答データ受信手段による第２応答データの受信結果に基づいて「他の第２仮想ポート」の通信相手となる「他の第１仮想ポート」を設定している（Ｓ８７：図１２）。
【００８５】
上記のように送信処理、受信処理が行われることにより、例えば、コンピュータ２の仮想ポートＣＯＭ１１（一の第１仮想ポート）と携帯端末２０の仮想ポート２１（一の第２仮想ポート）とを対応付けることができ、コンピュータ２の仮想ポートＣＯＭ１２（他の第１仮想ポート）と携帯端末２０の仮想ポート２２（他の第２仮想ポート）とを対応付けることができる。そして、仮想ポートＣＯＭ１１（一の第１仮想ポート）にアプリケーションプログラムＡ１が対応付けられ、仮想ポートＣＯＭ２１（一の第２仮想ポート）にアプリケーションプログラムＡ２が対応付けられている場合には、これら仮想ポートＣＯＭ１１、２１を介してアプリケーションプログラムＡ１、Ａ２間でデータ通信（例えばファイル転送など）を行うことができる。また、仮想ポートＣＯＭ１２（他の第１仮想ポート）にアプリケーションプログラムＢ１が対応付けられ、仮想ポートＣＯＭ２２（他の第２仮想ポート）にアプリケーションプログラムＢ２が対応付けられている場合には、これら仮想ポートＣＯＭ１２、２２を介してアプリケーションプログラムＢ１、Ｂ２間でデータ通信（例えばファイル転送）などを行うことができる。このようなアプリケーションプログラムＡ１、Ａ２間でのデータ通信（第１の通信処理）とアプリケーションプログラムＢ１、Ｂ２間でのデータ通信（第２の通信処理）とは並行して実行することができる。例えば、アプリケーションプログラムＡ１、Ａ２でのデータ送信が長時間持続するような場合であっても、その期間中通信ポートＰ１、Ｐ２が占有されることがなく、そのデータ送信の合間にアプリケーションプログラムＢ１、Ｂ２間でデータ通信を行うことが可能となる。
【００８６】
（第１実施形態の主な効果）
本実施形態に係る通信システム１では、コンピュータ２（第１情報処理装置）において、第１通信ポートＰ１と、第１通信ポートＰ１を介してデータの送受信を行う第１通信手段と、第１通信ポートと対応付けて複数の第１仮想ポートを割り当てる第１仮想ポート割当手段とが設けられている。また、携帯端末２０（第２情報処理装置）において、第２通信ポートＰ２と、第２通信ポートＰ２を介してデータの送受信を行う第２通信手段と、第２通信ポートＰ２と対応付けて複数の第２仮想ポートを割り当てる第２仮想ポート割当手段とが設けられている。これにより、コンピュータ２及び携帯端末２０のそれぞれにおいて実際の通信ポート（第１通信ポートＰ１、第２通信ポートＰ２）に対応した複数の仮想ポートが割り当てられることとなる。
更に、コンピュータ２及び携帯端末２０の少なくともいずれかにおいて、一の第１仮想ポートと一の第２仮想ポートとを通信相手として設定し、他の第１仮想ポートと他の第２仮想ポートとを通信相手として設定する設定手段が設けられ、第１通信手段と第２通信手段とが、設定手段によって対応付けられた一の第１仮想ポートと一の第２仮想ポートとを介して第１の通信処理を行うと共に、他の第１仮想ポートと他の第２仮想ポートとを介して第２通信処理を行う構成をなしており、更に、第１の通信処理と第２の通信処理とが並行して実行可能とされている。このようにすると、第１通信ポート及び第２通信ポートを介して複数の通信を同時期に並行して行うことができ、第１通信ポートと第２通信ポートとの間でいずれかの通信が行われている時期に他の通信が排除される事態を回避し易くなる。なお、上記実施形態では、コンピュータ２のＣＰＵ３、メモリ（ＲＡＭ５、ＨＤＤ６等）、携帯端末２０の制御回路４０、メモリ３５が「設定手段」の一例に相当しており、上記設定を行うように機能している。
【００８７】
また。本実施形態では、コンピュータ２に第１設定手段が設けられ、この第１設定手段が、第１仮想ポート割当手段によって割り当てられた一の第１仮想ポートから、第２情報処理装置において割り当てられている複数の第２仮想ポートに対して第１情報を送信する第１情報送信手段を備えている。このようにすると、第１通信ポートＰ１に割り当てられたいずれか一の第１仮想ポートから当該一の第１仮想ポートの相手となる複数の第２仮想ポートにデータ（第１情報）を送信することができ、この第１情報の送信結果に基づいて複数の第２仮想ポートの中から一の第１仮想ポートの相手となる一の第２仮想ポートを選定し易くなる。
【００８８】
また、本実施形態では、携帯端末２０において、第１情報送信手段からの第１情報を受信したときに当該第１情報に対する第１応答データを少なくともいずれかの第２仮想ポートを介して送信する第１応答データ送信手段が設けられている。そして、第１情報処理装置側の第１設定手段は、第１応答データ送信手段からの第１応答データを受信可能な第１応答データ受信手段を備えており、第１応答データ受信手段による第１応答データの受信結果に基づいて一の第１仮想ポートの通信相手となる一の第２仮想ポートを設定している。このようにすると、コンピュータ２側では、いずれかの第１仮想ポート（一の第１仮想ポート）の通信相手となる相手方の第２仮想ポート（一の第２仮想ポート）を応答データ（第１応答データ）に基づいてその送信元の第２仮想ポートに定めることができ、仮想ポート同士の対応付けを簡易な通信処理で実現できる。
【００８９】
更に、本実施形態では、携帯端末２０に第２設定手段が設けられ、この第２設定手段が、第２仮想ポート割当手段によって割り当てられた他の第２仮想ポートから、第１情報処理装置において割り当てられた複数の第１仮想ポートに対して第２情報を送信する第２情報送信手段を備えている。更に、第１情報処理装置には、第２情報送信手段からの第２情報を受信したときに当該第２情報に対する第２応答データを少なくともいずれかの第１仮想ポートを介して送信する第２応答データ送信手段が設けられており、第２設定手段は、第２応答データ送信手段からの第２応答データを受信可能な第２応答データ受信手段を備えている。そして、第２応答データ受信手段による第２応答データの受信結果に基づいて他の第２仮想ポートの通信相手となる他の第１仮想ポートを設定している。
このようにすると、携帯端末２０側では、上記一の第２仮想ポート以外の第２仮想ポート（他の第２仮想ポート）の通信相手となる第１仮想ポート（他の第１仮想ポート）を応答データ（第２答データ）に基づいてその送信元の仮想ポートに定めることができ、携帯端末２０側での仮想ポート同士の対応付けを簡易な通信処理で実現できる。
【００９０】
[他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００９１】
上記実施形態では第１情報処理装置をパーソナルコンピュータとして構成されるコンピュータ２によって構成し、第２情報処理装置を光学的情報読取装置として構成される携帯端末２０によって構成したが、第１情報処理装置及び第２情報処理装置をいずれも携帯端末２０と同様の携帯端末によって構成してもよい。或いは、第１情報処理装置及び第２情報処理装置をいずれもコンピュータ２と同様のコンピュータによって構成してもよい。
【００９２】
上記実施形態では、コンピュータ２のいずれかの仮想ポート（一の第１仮想ポート）から携帯端末２０の全ての仮想ポート（第２仮想ポート）に対して第１情報（送信元の「一の第１仮想ポート」を特定する情報を含むデータ）を送信する初期送信処理（Ｓ１６、２０）を行い、いずれかの仮想ポート（第２仮想ポート）から応答データ（応答元の第２仮想ポートを特定する情報を含んだデータ）を受信した場合にこの応答データに基づいて「一の第１仮想ポート」の通信相手を設定していたが（図８、Ｓ３７参照）、第１情報の送信に対して複数の第２仮想ポートからの応答データがある場合に、「一の第１仮想ポート」の設定を中止するようにしてもよい。この場合、このような判断処理、中止処理を行うＣＰＵ３が「中止手段」の一例に相当する。
このようにすると、仮想ポート同士の対応付けが行いにくい場合に設定を中止して迅速に処理を終わらせることができ、不具合が生じる懸念のある設定を回避して迅速に次の対応をとることができる。
また、同様に、携帯端末２０のいずれかの仮想ポート（他の第２仮想ポート）からコンピュータ２の全ての仮想ポート（第１仮想ポート）に対して第２情報（送信元の「他の第２仮想ポート」を特定する情報を含むデータ）を送信する初期送信処理（Ｓ６６、７０）を行い、いずれかの仮想ポート（第１仮想ポート）から応答データ（応答元の第１仮想ポートを特定する情報を含んだデータ）を受信した場合にこの応答データに基づいて「他の第２仮想ポート」の通信相手を設定していたが（図１２、Ｓ８７参照）、第２情報の送信に対して複数の第１仮想ポートからの応答データがある場合に、「他の第２仮想ポート」の設定を中止するようにしてもよい。
【符号の説明】
【００９３】
１…通信システム
２…コンピュータ（第１情報処理装置）
３…ＣＰＵ（第１通信手段、設定手段、第１設定手段、第１仮想ポート割当手段、第１情報送信手段、第１応答データ受信手段、第２応答データ送信手段、中止手段）
５…ＲＡＭ（設定手段、第１設定手段、第１仮想ポート割当手段）
６…ＨＤＤ（設定手段、第１設定手段、第１仮想ポート割当手段）
１３…通信インターフェース（第１通信手段、第１情報送信手段、第１応答データ受信手段、第２応答データ送信手段）
２０…携帯端末（第２情報処理装置）
３５…メモリ（第２仮想ポート割当手段、設定手段、第２設定手段、）
４０…制御回路（第２通信手段、設定手段、第２設定手段、第２仮想ポート割当手段、第１応答データ送信手段、第２情報送信手段、第２応答データ受信手段）
４８…通信インターフェース（第２通信手段、第１応答データ送信手段、第２情報送信手段、第２応答データ受信手段）
Ｐ１…通信ポート（第１通信ポート）
Ｐ２…通信ポート（第２通信ポート）
【図１】
2011186713.tif 000003
【図２】
2011186713.tif 000004
【図３】
2011186713.tif 000005
【図４】
2011186713.tif 000006
【図５】
2011186713.tif 000007
【図６】
2011186713.tif 000008
【図７】
2011186713.tif 000009
【図８】
2011186713.tif 000010
【図９】
2011186713.tif 000011
【図１０】
2011186713.tif 000012
【図１１】
2011186713.tif 000013
【図１２】
2011186713.tif 000014