問題タブ [socat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tcp - socat を使用して、1 つの TTY ストリームを複数の TCP/IP 宛先に中継し、さらに 1 つの「スニファ」プログラムに中継する
組み込み Linux 開発ボードを使用して、次のことを行うウィジェットをまとめる必要があります。
- 物理シリアル ポート経由でパケットを読み取り、それらのパケットを多数の IP アドレス (最大 20 個の IP アドレス、構成ファイルから読み取った IP 宛先を使用) に中継します。
- また、おそらく で書かれたカスタム プログラムを使用して、これらのシリアル パケットを「スニッフィング」し
cます。
プログラミングのバックグラウンドを持つ人として、(私にとって)最も明白な解決策はc、上記を達成するためにゼロからプログラムを作成することです。ただし、これはすぐにまとめる必要があるものであり、既存の Linux コマンドライン プログラムとスクリプトの作成 (私はあまり得意ではありません) について詳しく学ぶための言い訳が必要なので、これは、既存のコマンドライン プログラムとシェル スクリプトを使用して実現できます。次に、ゼロから作成する唯一の部分は、パケット スニファー ( と呼びますsniffer.c) です。
デバイスとアドレス間の中継に使用できることを理解してnetcatおり、両方の実験を開始しました。の複数のインスタンスを実行してシリアル データを TTY ポートからリモート IP アドレスに中継socatすることで、TCP/IP ソフトウェアを開発およびテストする必要がなくなるのではないかと考えました。socatの各インスタンスはsocat、特定のリモート IP アドレスを処理できます。
これは実現可能でしょうか?もしそうなら、どうすれば の複数のインスタンスと の 1 つのインスタンス/dev/ttyS0のソースとして (たとえば)からのストリームを効果的に「多重化」できますか? 1 つの方法として、読み取ったデータをキャッシュ ファイルにリレーし、インスタンスとすべてのインスタンスにそのファイルへの読み取り専用アクセスを許可することはできますか?socatsniffer.c/dev/ttyS0socatsniffer.c
python - bind_unix_sock で Tornado HTTPServer を実行するには?
私は単純なサーバーを持っています。普通のソケットなら動きますが、Unix ソケットを使おうとするとうまくいかないと思います。
サーバーは次のとおりです。
これが私がテストしている方法です:
サーバーは応答しません。
私が間違っていることは何か分かりますか?
serial-port - Socat Windows シリアル ポート アクセス
シリアル COM10 を LAN にルートしたい --> LAN を COM12 に
そのため、Windows バージョンの socat には同等のコマンドが必要です。
COM10 にアクセスしたい場合、Windows では/dev/ttyS0の代わりに何を入力する必要がありますか?
送信者: socat -d -d -d TCP4:loalhost:23000 /dev/ttyS1
受信者: socat -d -d -d TCP4-LISTEN:23000 /dev/ttyS2
少し早いですがお礼を!
linux - TCP 通信への双方向ソケット
TCPポートをリッスンして書き込むソフトウェアXがあります。つまり、TCP の読み取りと書き込みを行うサーバー ソケットとクライアントを作成します。
また、ソフトウェア X を提供する形式でデータを受け取り、データをシリアルに送り返すことができるシリアル デバイス ttyUSB0 があります。
ソフトウェア X とシリアル ttyUSB0 に対して透過的に見えるように、シリアルから TCP に、またはその逆にデータをフィードしたいと考えています。
私はsocatを使おうとしていました。お気に入り、
しかし、うまくいかないようです。TCP ポートのリスナーがバインディングをブロックしているように見えます。私は持っている
E bind(3, {AF=2 0.0.0.0:7758}, 16): アドレスは既に使用されています
誰かが私の問題を手伝ってくれませんか?
sockets - 仮想 tty リンクと fork を持つ socat は、私の pty リンクを削除します
シリアルポート経由で通信するソフトウェアをテストするために、tcp 接続を単一の仮想 tty に多重化できる必要があります。次のコマンドを使用して、tcp ポートをリッスンし、データを PTY に転送するサーバーを作成しました。
私の問題は、ポート 11313 の tcp クライアントが切断されたときに、socat が /dev/ttyV1 へのリンクを削除し、接続されている他のすべてのユーザーへのセッションを強制終了することです。
このリンクを保持する方法はありますか? それとも、socat の外部で疑似 tty を作成して、維持することを心配する必要がないようにしますか? /dev/tty1 と /dev/ttyS1 を試しましたが、うまくいきませんでした。これらに対する私のコマンドは次のとおりです。
私の要件: 一方の端でソフトウェアをシリアル tty に接続し、もう一方の端で多数の tcp クライアントを接続できること。TCP クライアントのメッセージングは、メッセージが重なって到着しないように、適切にシリアル化および多重化されます。
c++ - Linux での USB へのシリアル通信に SOCAT を使用する
socat を使用している場合、何らかの理由で Arduino への通信しか機能しないため、socat がシリアル通信に対して行うことについて少し説明したいと思います。
これは、socat のセットアップに使用するコマンドです。
私が C++ で使用したコードは次のとおりです。
したがって、これを socat で実行すると、arduino は想定どおりに反応しますが、open() 行を /tmp/serial から /dev/ttyACM0 に変更すると、arduino はまったく機能しなくなります。socat がデータに対して行っていることと、C コードを変更して同じことを行う方法を説明してもらえますか? socat を使用すると遅延が発生し、ロボットの運転が予測不能になるため、最終的な実装では socat を使用できません。
bash - socat bash Web サーバー経由で http 経由で画像を送信する
socatを使用してbashでWebサーバーを作成しようとしています。画像リクエストの処理に問題があります。私は socat リスニング接続を次のように開いています:
$1 はドキュメントルート、$2 は画像ファイル名です。
「エラーが含まれている」ため、画像は Firefox で表示できません。コンソールに次の出力が表示されます。
netcat を使用して同様のスクリプトを見たことがありますが、socat を使用して動作させることができません。複数の接続をフォークして処理する機能があるため、socat を使い続けたいと思います。任意の洞察をいただければ幸いです。
linux - http インターセプト プロキシとしての netcat/socat
socat/netcat は、別のプロキシ サーバーにリダイレクトする機能を持つプロキシ サーバーとして使用できると聞きました。
しかし、私の状況では、httpヘッダーを操作して少し「トリック」したいと思っています。
したがって、私の目標は、netcat/socat を使用して、クライアントが http 要求を読み取って再構築し、それを外部の squid プロキシ サーバーにリダイレクトする機能を持つ localhost "http CONNECT" プロキシ サーバーとして機能することです。
何時間も検索した後、これを達成する方法の例が見つかりませんでした。
それは可能ですか?はいの場合、どのように?私はnetcat/socatのことを初めて知ったので。
ありがとうございました。
qt - Qt で SOCAT によって作成された仮想シリアル ポートを開く
MacOS で Qt5 アプリケーションを開発しています。
アプリケーションのシリアル ポート通信をテストしたいと思います。
socatを使用したいのですが、socat で作成されたポートを開くことができません: QSerialPortInfo::availablePorts()は/dev/cu-XXXXXXポートのみをリストします...