問題タブ [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.

0 投票する
3 に答える
3716 参照

mysql - How can I map a local unix socket to an inet socket?

I'm curious if it is possible to map a UNIX socket on to an INET socket. The situation is simply that I'd like to connect to a MySQL server. Unfortunately it has INET sockets disabled and therefore I can only connect with UNIX sockets. The tools I'm using/writing have to connect on an INET socket, so I'm trying to see if I can map one on to the other.

It took a fair amount of searching but I did find socat, which purportedly does what I'm looking for. I was wondering if anyone has any suggestions on how to accomplish this. The command-line I've been using (with partial success) is:

Now I can make connections and talk to the server. Unfortunately any attempts at making multiple connections fail as I need to use the fork option but this option seems to render the connections nonfunctional.

I know I can tackle the issue with Perl (my preferred language), but I'd rather avoid writing the entire implementation myself. I familiar with the IO::Socket libraries, I am simply hoping anyone has experience doing this sort of thing. Open to suggestions/ideas.

Thanks.

0 投票する
3 に答える
2811 参照

python - pySerial と socat でバイトを送信する際の問題

pySerial 経由でいくつかのバイトを送信したい。テスト目的で、socat を使用して仮想シリアル ポートを作成しました。

Pythonコードは次のとおりです。

私が得る出力:

私が期待する出力:

ここで何が間違っていますか?それはsocatまたはpythonですか?

編集:

x の値が異なると、他の奇妙な動作に気付きました。出力は次のとおりです。

解決:

問題は、書き込み先と同じポートで読み取ったことです。私が正しく理解すれば、socat は 2 つのポートを「in」と「out」として「接続」します。したがって、./ptyp1 に書き込む場合は、./ptyp2 を読み取る必要があります。その後、すべてが順調です。

0 投票する
2 に答える
9619 参照

linux - socat:TTYを介したトンネルIP

socatユーティリティを使用して、ttyS0のようなシリアル(モデム)デバイスを介して双方向IPトンネルを取得することは可能ですか?TUNオプションを使用しようとしましたが、それでも結果が得られません。

任意の提案を歓迎します:)

アップデート:

PC1:

PC2:

その後、両端に適切なアドレスを持つtun0インターフェイスを見ましたが、一方から他方にpingを実行できません。ping -c 1 192.168.1.1その代わりに、リモートプロセス出口を使用してデータを送信すると、socattun0デバイスが破棄されます。助言がありますか?..

Update2:

socatのみを使用してTCP/IPトンネルをシリアル経由で作成しようとすると、フレーミングの問題が発生します。socatの開発者であるGerhardRiegerは、次のように言っています。

私はあなたが正しいのではないかと心配しています。データグラムソケットを調整し、運が良ければパイプも調整します。ただし、シリアル回線を介すると、パケットの境界がなくなる可能性があり、これはtunインターフェイスでデータを送信するときに致命的です。

申し訳ありませんが、現在、socatベースのソリューションを提供することはできません。ただし、新しいバージョン2リリースでいくつかのフレーミングを統合しようとします。

0 投票する
1 に答える
4627 参照

udp - UDP をリダイレクトする SOCAT が機能しない!

UDP データグラムのデータを外部の場所にあるクライアントに、ローカル LAN の PC に送信しようとしています。しかし、私のネットワークは Slackware を搭載した PC に送信する ADSL モデムを介しており、この PC はパッケージを他の PC にリダイレクトします。UDP をリダイレクトするために socat を使用しています。

LAN では接続は問題ありませんが、外部 IP は機能しません。誰か助けて?

0 投票する
1 に答える
5385 参照

bash - ログ収集のために socat が (TCP または UNIX) ソケットに 1 行ずつ書き込むようにする

複数のホストから複数のログ ファイルをマージしようとしています。socat -u EXEC:'follow_log_cmd' UNIX-SENDTO:/tmp/socketフォローしたいログごとに実行しています。

私がやっているログ収集マシンでsocat -u UNIX-RECV:/tmp/socket -

私の問題は、socat が一度に 1 行ずつ書き込むのではなく、一度に 1 行ずつ書き込むため、ログ エントリが重複することがあるということです。

一度に1行ずつ書き込む方法はありますか?

0 投票する
3 に答える
11124 参照

c - SOCK_DGRAM で双方向の UNIX ドメインソケットを作成するには?

シンプルな Unix データグラム サーバー/クライアントを作成しようとしていますが、いくつか問題があります。私が欲しいのは、データグラムソケットをリッスンし、受信したすべてのメッセージに返信を元の送信者に送信するサーバーです。最初に「サーバー」として使用し、クライアントを C で記述してみることにしsocatました。次のように socat を実行しています。

私の理解の範囲では、これは/tmp/test.socket同じ文字列で受信したものすべてに耳を傾けて返信する必要がありますか? 次に、次のようなクライアント プログラムがあります (わかりやすくするためにエラー チェックを削除しています)。

パケットを送信し (動作します)、パケットを受信して​​から出力する必要がありますが、プログラムはパケットを受信できないようです。ここで何が間違っているのでしょうか、それとも Unix ソケットについて根本的な誤解がありますか? ありがとう!

0 投票する
0 に答える
868 参照

tcp - Socat: セッションへの再接続を許可する

ローカル PTY リンクを使用して SSH 接続をセットアップできます。また、いくつかのトリガーをリモート エンドに送信し、screen または minicom を使用してセッションに接続できるようにしたいと考えています。

次に、別のウィンドウで(またはsocatをバックグラウンドで)

問題は、エコーの後、socat が EXEC を切断することです。PTY 接続が続行されるように、EXEC を開いたままにしておくのではありません。

何か案は?(expect または empty-expect を使用してこれを行うことができますが、セッションのインタラクティブな部分では、前者とバッファリングが後者を台無しにします。)

0 投票する
1 に答える
3523 参照

c# - ubuntu linux の仮想 socat シリアル ポートと c#

テスト目的で、socat で作成された仮想シリアル ポートに接続する簡単なプログラムを作成しようとしています。

次のコマンドでシリアル ポートを作成します。

この出力を得る:

この方法で接続しようとすると:

「ファイル名不明」が出System.IO.IOExceptionます。

DataBits、StopBits、またはその他のパラメーターを設定していませんか? socat によって設定されたプロパティを見つけるにはどうすればよいですか? または、このコードの何が問題になっていますか?

0 投票する
1 に答える
434 参照

bash - socat を使用して複数の IP アドレスにメッセージを送信する

Linux で bash スクリプトを作成して複数の IP アドレスを取得しsocat、ポート 5000 でリッスンするために使用し、メッセージを受信した場合はすべての IP アドレスに送信したいと考えています。

どうやってやるの??

0 投票する
3 に答える
3513 参照

tcp - socat:送信者のIPアドレスを取得する

次のコードを使用して接続を受信します。

socat TCP-LISTEN:4000,fork EXEC:"./myscrpit"

スクリプトに送信者のIPアドレスが必要ですが、SOCAT_PEERADDR設定されていません。何が問題ですか?