19

socat を使用して、リッスンしているソケットへの接続ごとに偽の HTTP 応答で応答しようとしました。私はそれを働かせることができません。socat の cygwin バージョンを使用している可能性がありますか? 知らない。

問題の一部は、2 番目の引数<some_file_response>が書き込まれないようにすることです。つまり、双方向であるため、response.txt の内容を読み取ってから、同じファイルに書き込みますが、それは望ましくありません。何度やっopen:response.txt,rdonlyてもうまくいきません。system:何もしないようです。execたとえば、私はできますexec:'cat response.txt'が、ポート1234に接続しているクライアントに送信されることはありません。

socat -vv tcp-listen:1234,reuseaddr,fork <some_file_response>

接続されているクライアントにファイルを読み取ってから、接続を閉じて、それを何度も繰り返してほしいです (それが fork を使用した理由です)。

私はこの質問に賞金をかけています。Windowsコマンドプロンプトからcygwinバージョンで動作するソリューションのみを教えてください。

4

3 に答える 3

10

cygwin でテスト済み:

 socat -vv TCP-LISTEN:1234,crlf,reuseaddr,fork SYSTEM:"echo HTTP/1.0 200; echo Content-Type\: text/plain; echo; cat <some_file_response>"

完全な HTTP 応答が必要ない場合は、エコーを省略します。

socat -vv TCP-LISTEN:1234,crlf,reuseaddr,fork SYSTEM:"cat <some_file_response>"
于 2015-04-30T13:37:03.300 に答える
3

socatの例から引用

socat -vv TCP-LISTEN:8000,crlf,reuseaddr,fork SYSTEM:"echo HTTP/1.0 200; echo Content-Type\: text/plain; echo; cat"
于 2015-04-30T12:10:19.143 に答える