web-dev-qa-db-ja.com

TCPで仮想シリアルポート接続を作成します

仮想シリアルポートに書き込み、ネットワーク経由でリモートクライアントから同じポートを介してデータを受信できるアプリケーションを開発しています。

アプリケーションはLinuxサーバーで実行されます。シリアルポートを使用するのは初めてで、このトピックに関する質問があります。

クライアント

クライアントは、サーバーへのTCP接続を確立できます。クライアントをセットアップするとき、サーバーのIPアドレス、tcpポート(通常8080)、および仮想comポートを提供する必要があります。

その後、クライアントは自動的にサーバーへの接続を試みます。

サーバー

サーバーには、クライアント構成で設定したものと同じ仮想COMポート(例:COM1)があります。サーバー上のアプリケーションがこのポートにデータを書き込む場合、tcpを介して接続されているすべてのクライアントにデータを送信する必要があります。クライアントからの応答は、TCP=を介してサーバーに送信され、サーバーは仮想シリアルポートを介して読み取ることができます。

質問

Windowsでは、仮想シリアルポートコネクタを使用しました http://www.eterlogic.com/Products.VSPE.html これはほとんどの作業を行いました。しかし、Linuxマシンでこの問題を解決したいと思います。

私の質問は、どのようにTCP仮想シリアルポートが接続され、このポートを介してデータを送受信できるサーバーをTCP=リスニングクライアントに作成できますか? ?

13
Upvote

socat を試してください。可能なシナリオ:

socat  pty,link=/dev/virtualcom0,raw  tcp:192.168.254.254:8080&

socatは、TCP 192.168.254.254:8080への接続を作成するため、すべてが/ dev /に書き込まれますvirtualcom0は192.168.254.254:8080に転送され、その逆も同様です。

別のアプローチは、Linuxサーバー側で RFC2217 経由で ser2net を使用し、WindowsでRFC2217ドライバーを使用することですサイド(たとえば http://www.hw-group.com/products/hw_vsp/index_en.html シングルポートバージョン)。 http://pyserial.sourceforge.net/ を取得して、ser2netを操作することもできます。

24
yegorich

ソフトウェアは、TCP http://www.serial-com-port.com/ 経由でサーバーとクライアントの接続を確立するのに役立ちます

ネットワーク経由で仮想シリアル通信を作成するために使用していますが、コンピューターに実際のRS232ポートがあります。したがって、ネットワークを介してデータを転送するだけです。サーバーでも仮想COMを作成する必要がある場合は、仮想シリアルポートドライバーを使用します。

1
Jenny Bredst