0

TCPソケットを使用してサーバーと通信するクライアントプログラムを実行しています。クライアントを起動すると、サーバーとのソケット接続がすぐに作成され、接続が閉じられません。

私が疑問に思っているのは、このすでに開いているソケットでデータを送信する別のアプリケーション(クライアント/サーバーアプリとは無関係)を作成できますか?

私はまさにこれを行うように見えるプログラムを知っています。このプログラムは、クライアントとサーバー間のパケットをスニッフィングし、接続でデータを送信できるように設計されています。データを送信する前に、プログラムにクライアントプロセス名(例:client.exe)を指定する必要があります。クライアントプロセスをサーバーへの一種のプロキシとして使用していると思います(これは私がやりたいことではなく、サーバーに直接接続できるようにしたいです)。

4

1 に答える 1

0

はい、できます。特定の状況に応じて、2 つ目のアプリがクライアントと同じホストで実行され、それが Unix OS である場合に限ります。

クライアント アプリケーションと 2 番目のアプリで Unix ドメイン ソケットを開き、クライアント アプリケーションがソケット用に取得した開いているファイル記述子のコピーを 2 番目のアプリケーションに渡すようにする必要があります。

これを行う方法の詳細については、この SO の質問を参照してください:異なるプロセス間でファイル記述子を渡すポータブルな方法

于 2012-08-09T08:35:05.797 に答える