ターミナルでtelnetを使ってテキストを送信するにはどうすればいいですか?


5

私のマシンのポートにテキストを送りたいのですが telnet Mac OS Xターミナルで

私が開始 telnet を使用して:

telnet localhost 8080

それから私はいくつかのテキストを入力します。そのテキストは自動的に送信されますか、それともテキストを送信するために何かをする必要がありますか?


1
ポート8080で待機しているもの通常のHTTPポート80が利用できない場合にWebサーバーに一般的に使用されるアドレスです。 Webサーバーの場合は、2つの改行(実際には文字を返す)で終わった完全なHTTPリクエストを送信する必要があります。通常、後述のLaasが説明しているように、改行が行の送信を引き起こします。
Harald Hanche-Olsen

回答:


9

これが単純なPythonサーバーです。

#!/usr/bin/env python

import socket


TCP_IP = '127.0.0.1'
TCP_PORT = 5005
BUFFER_SIZE = 10  # Normally 1024, but we want fast response

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)

conn, addr = s.accept()
print 'Connection address:', addr
while 1:
    data = conn.recv(BUFFER_SIZE)
    if not data: break
    print "received data:", data
    conn.send(data)  # echo
conn.close()

ソース

server.pyとして保存して実行します python server.py

それから端末を使って接続してみてください

telnet 127.0.0.1 5005

それから何かをタイプして押してください 戻る

サーバーはそのデータをコンソールに表示してあなたに送り返します。

そうすれば、telnetでデータを送信するために何をしなければならないのかがわかります。


3

答えは、リモートエンドが何をサポートしているかによって異なります。

  1. 新しい ライン モード 文字処理が行われる場所 リモートは送信のみ の間に制御パケットを受信します。 行末文字を入力するときに(たとえば、Enterキーを押すなど)、1行全体を入力して受け取ります。
  2. 一度に1文字 各文字はそのまま送信されます 入力しました。
  3. 一度に古い行 - 完全に 完成した行が送信されます。

リモートエンドが受信した入力に対して行うことは、リモートエンドによって異なります。ほとんどのサーバープロセス(HTTP、SMTP、POP、IMAP)は、入力を処理する前に行末(EOL、改行)文字を待つ傾向があります。他の人は入力の処理を開始する前にファイルの終わり(EOF、^ D)を待つかもしれません。


3

にテキストを入力したとき telnet、デフォルトでそれはで動作します ラインモード 1行にパケットを送信するので、次のように押すだけです。 入る コマンドをリモートホストに送信します(クライアント側での端末文字処理のため)。これはネットワークトラフィックを減らすためであり、コマンドラインを入力している間の長い遅延ネットワークに非常に役立ちます。入力した文字ごとにパケットを送信する必要がある場合は、バイナリモードに切り替える必要があります。


Telnetをテストするには ラインモード たとえば、ダミーポートを実行してローカルポートをリッスンすることができます。を使って netcat (必要に応じてインストール):

nc -vl localhost 1234

次に、別の端末で次のようにしてサーバーに接続します。

telnet localhost 1234

データを受信したときに確認するテキストを入力します。

ヒット コントロール - ] ^] )とタイプ quit 終わる。


次のコマンドでBashシェルを使ってデータを送信することもできます。

cat > /dev/tcp/127.0.0.1/1234

それからテキストの入力を始めます。終了したら、ヒット コントロール - D


-2

使ってみる send 宛先ホストへの接続を開いた後にコマンドを実行します。

send "some text"

詳細について send 見る man telnet


試してみましたが、Enterを押すと新しい行が表示されます。
Jonas

send commandは、ランダムテキストではなく、特殊文字シーケンスをリモートマシンに送信するためのものです。 manページを見てください。 developer.apple.com/library/mac/documentation/Darwin/Reference/…
Ian C.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.