# Send file ([File] メニュー)

ファイルを送信します。

## "Send file" ダイアログボックス(送信前のファイル名指定)

File Name
  送信するファイルのファイル名を入力または選択してください。
  ダイアログにファイルをドロップすることでファイル名を入力することもできます。
Tera Term 4 と同じ方法で送信
  チェックを入れたとき(Tera Term 4 と同じ方法)
    ファイルから読み込みながら送信します。
    テキストファイルはACPとして読み込み、エンコードは自動判定されません。
  チェックを外した時
    ファイルをメモリに読み込んでから送信します。
    テキストファイルのエンコードは自動判定します。
Binary
  ファイルの内容をそのまま送信したい場合は選択してください。 選択しない場合は、漢字コード、改行文字が変換されて送信され、 TAB ($09), LF ($0A), CR ($0D)以外の制御文字は送信されません。
delay type
  no delay
    ディレイ処理なし
  per charactor
    1文字毎にディレイ処理を行う
  per line
    1行毎にディレイ処理を行う
  per sendsize
    指定送信文字毎にディレイ処理を行う
send size
  送信サイズ(delay typeが "per sendsize"のとき有効)
delay time(ms)
  ディレイ時間(delay typeが "no delay"以外のとき有効)

### 送信サイズ

Tera Termの通信相手の受信バッファサイズと処理速度を考慮することで、 指定した送信サイズ毎にディレイを入れることで、 1キャラクタ毎、1行毎にディレイを入れるより効率的にファイル送信を行うことができます。

送信データのドロップは次のところで発生することが考えられます。

                         s1            s2                 s3                s4                         program
    Tera Term ---> Tera Term内  ---> Windows ---> (sshd,telnet,pipe) ---> OS,driver      ---> 擬似端末(pty) + シェル,その他コマンド
                   送信バッファ                   (serial          )      UARTチップなど      組込プログラム等

                   受信バッファ <---         <---                    <---                <---
                         r1            r2                 r3                r4

s1 Tera Term内の送信バッファ
  可能性は低いでしょう。
  送信バッファの空きサイズを見ながらデータを詰めていきます。
s2 Windows
  可能性は低いでしょう。
  使用するハードウェア、ドライバのバージョンによってはBSoDを含めて様々な不具合が発生することがあります。
  Tera Termのシリアルポート設定ではドライバの詳細を見ることができます。
s3 送信路
  serialの場合エラー時の再送処理はありません。データにエラーが発生するとドロップします。
  TCP/IP, pipeの場合は可能性は低いと思われます。
s4 OS,UARTチップ(受信側)
  PC(CPU)の処理能力を超えたデータの受信(programがOSやチップから受信データを引き取らない場合)等で、 OS(ドライバ)、UARTチップの受信バッファがオーバーフローしてドロップします。
  フロー制御等はOS(ドライバ)が行うかprogramが行うかは実装によります。
  TCP/IPではフロー制御,エラー時の再送が行われ、多くの場合OS内のプロトコルスタックがこれらの処理を行います。
  シリアルではフロー制御の有無はユーザーが決めることができ、オーバーフローなどエラー時の再送は自動で行われません。
program
  プログラム内の受信バッファオーバーフローなどでドロップします。
  仮想端末(pty)ではバッファが溢れそうになると0x07(BEL)が送られ、Tera Termでベルがなります。

主なUARTチップ、ドライバの受信バッファサイズ

          8250 UART                 受信バッファなし
          16550 UART                16 Byte FIFO
          FT232R                    256 Byte receive buffer
          TTY drive(Linux 2.6.26)   4KB  (TTSSHによるSSHの設計と実装/疑似端末のしくみ)

送信データのエコーが返ってこない場合は受信データがどこかでドロップしていることも考えられます。

## "Send file" ダイアログボックス(送信中)

Close
  Close ボタンを押すとファイルの送信を中止します。
Pause/Start
  Pause ボタンを押すとファイルの送信を一時中断します。 このとき Pause ボタンは Start ボタンに変化します。 その後 Start ボタンを押すと送信を再開します。