sends

Section: WIN SYSTEM (1W)
Updated: 2000.12.20
Index Return to Main Contents
 

名称

sends - 共有メモリからシリアルポートへデータを送信  

形式

sends [-ad] [-i my_ID] [-p port] [-b rate] shmkey device [ logfile ]

 

解説

recvs は、キー  shmkey で指定された共有メモリ・セグメントに(巡回的に)書き込まれている WIN形式のデータを、デバイス名 device のシリアルポートから、 HDLCフレームで出力します。 sends がサポートしているシリアルポートのデバイスは、Solarisのzshデバイス (/dev/zsh?) およびSolaris上のAurora Technologies社製マルチポート同期 シリアルボードの /dev/hdlcdrv/? デバイスです。

ログファイル名  logfile を指定すると、ここに動作ログがとられ、指定しないとログ情報は標準出力に 送られます。ログファイルは書き込みのたび毎にオープン/クローズされます。

sends は引数なしで起動すると簡単な使用法を表示します。  

共有メモリ上の形式

recvt(1W) を参照してください。ただし、実際に sends が識別する のは

    (1)4バイトのブロックサイズ(バイト)
    (2)4バイトの「書き込み時刻」
    (3)データ

だけであり、「(3)データ」の内容は何でもかまいません。ただし 1ブロックが1パケットとして送信されるので、1パケットの長さは 1472バイト以下である必要があります。  

シリアル回線上のデータ形式

recvs(1W) を参照してください。ただし、実際に sends が関与するのは

    (1)2バイトの送信局アドレス
    (2)1バイトのパケット番号(0〜255)
    (3)1バイトの「元の」パケット番号(0〜255)
    (4)データ

であり、「(4)データ」の内容は共有メモリ中のブロックのデータ部分が そのままコピーされます。  

再送プロトコル

recvs(1W) を参照してください。 sends はHDLCデータを送信しているシリアルポートか、 または指定されたUDPポートで再送要求を受け付け、過去最大128パケットまで遡った 再送要求に応えます。  

オプション

-a
Aurora Technologies社製マルチポート同期シリアルボードを利用する。 これを指定しないと、Solarisの標準シリアルポートが使われます。
-d
すべての送信パケットを2個ずつ送ります。これは無線等の単方向回線で、 回線速度は速いが再送要求が使えない場合に、データの欠落を減らすために 使用されます。
-p
再送要求パケットはUDPポート port で受け付けます。 デフォールトでは再送要求パケットをシリアル回線から受け付けます。
-i
送信パケットにセットする、送信局アドレス my_ID (0〜65535)を10進数で 設定します。これを指定しないと、0 が使われます。
-b
シリアル回線の内部送信クロックのビットレート rate (bps)を設定します。 これを指定しないと外部クロックが使われます。
 

ソース

`sends.c'
 

注意事項

現在のところ、sends は共有メモリ中のブロックサイズが送信可能な 長さかどうかのチェックをしていません。それを保証するためには、 とりあえず -a オプション付きの recvt(1W) で受信したデータを 使うことをお勧めします。
recvs は Solaris2.Xでのみテストされています。  

関連事項

recvs(1W), recvt(1W), shmdump(1W)


 

Index

名称
形式
解説
共有メモリ上の形式
シリアル回線上のデータ形式
再送プロトコル
オプション
ソース
注意事項
関連事項