2012-09-04 6 views
6

私は、コマンドを発行しています:netcatを使ってファイルを送信し、接続を維持するには?

netcat serveraddress myport < MY_FILE 

事があるが、そのnetcatを、ファイルが送信された後、接続を閉じるようにメッセージを送信します。そのファイルを送信した後、コンソールからメッセージを書き込む必要があります。私はstdinへのpipilelineに何かをしたことを覚えている..それはこれでしたか?

netcat serveraddress myport < MY_FILE | 

これは現在動作していません。

私はUNIXです。

追加情報:

cat MY_FILE - | ncat ... 

は(私がしたことに注意してください:これは、サーバー側でのコントロールをあなたがやっていたかもしれ

答えて

10

(EGがInbound接続をリスンするためにサーバーサイドでのnetcatを使用)を前提としませんでした。私はncatは、優れたプログラムであると考えているため、意図的に、netcatをしmispelled)

+0

ありがとうございました。大きなプラスは、なぜそれが動作するか、または何らかの理由で、少しの情報を追加できる場合です。 ( " - "とは何ですか?) – quinestor

+1

'-'はcatにstdinを読み込ませるように指示します。まず、 'MY_FILE'を読み込み(書き込み)、stdinを読み込みます。 stdinがttyの場合、キーボードからの入力を単にブロックします。 –

7

サーバー側:

nc -k -l 10000 < my_in_file 

クライアント側:

echo "bye" | netcat 192.168.1.6 10000 > my_in_file - 
+1

ありがとうございます。しかし、これはサーバー側がncを使用していないので、うまくいきませんでした。 – quinestor

6

他の接続がNCに-k使いのリッスンを維持します。

サーバーに接続し、サーバーからファイルへの書き込みを行い、stdoutに印刷したいとします。

サーバー: nc -k -l $ PORT |ティー・ファイル(または> stdoutに印刷せずにファイル)あなたは、NCの-q -1オプションを使用することができます$ IP $ PORT < file_to_send

3

NC

クライアント :

echo MY_FILE | nc -q -1 192.168.0.1 9000 

この方法でそれをコマンドがバックグラウンドで実行されている場合でも動作します。

1

私はこのスレッドが非常に古いで実現するが、そしてOPは、ここで参考のために、UNIXを使用するには、Windowsと同等である "猫FILE - | NCATのHOST":

type FILE con | ncat HOST 

そして、CTRL-ZやCTRL-を入力Cを押して接続を終了します。 'CON' は、コンソール入力を意味

ノート

関連する問題