データと伝送路の語長が一致しない場合
概要
6bitの伝送路を通して8bitのデータを送信する。
方法
- 準備
サーバ側で、
受信したデータのうち6ビットだけを取り出して送り返すプログラムを実行するので、
ここまで来たら教官またはTAに申し出ること。
これによって、6bitの伝送路と同じ状態になる。
なお、実際のデータ長や伝送速度はこれまでの実験と同じになっている。
- 送受信プログラムの作成
データの送受信
で作成したプログラムを用いて適当な文字列を送信して、
書き換えられて戻ってくることを確認する。
送信データにはアルファベット大文字、小文字、数字を混ぜてみるとよい。
なお、送信するデータの最後は必ず「改行」 ("\n") とすること。
- プログラムの改造
データを6bitに変換して送信し、元に戻すプログラムを作成する。
このとき、書き換えられずに送信できる文字は
ASCIIコード表で
上位の数字が「2」と「3」の列だけになるので、
これらの文字だけを使ってデータを表現すること。
「0」と「1」の列には種々の制御コードが含まれるので、
使えるとは限らない。
ヒントと注意
- 数字、アルファベット大文字、小文字が含まれていても
正常に送信できるかどうかを確認すること。
- 0〜255までのデータ (整数値と考えても良い) を
32文字を使って表現することになる。
- 数字はすべて使える。
- C言語において文字と文字列
がどのように扱われるのかを復習しておく。
- 以下の方法は比較的簡単に実装できる。
- 文字コードを送信
文字コードを10進数文字列にして送信する。
受信後に10進数の区切りがわかるようにしておく必要がある。
- 8bitのデータを4bit×2回に分けて送信
4bitデータは0〜15になるので、これを
ASCIIコード表で
上位の数字が「2」と「3」の列のいずれかに割り当てる。
受信後に合成して元の文字列に戻す。
ビット操作
を使うとプログラミングが楽であるが、使わない方法もある。
- 7bitの伝送路を通して8bitデータを送る方法として、
下記のものが広く用いられている。
- quoted printable (MIME)
- base64 (MIME)
- binhex (主としてMacintosh)
- uuencode (主としてUNIX)

機器の接続とデータの流れ
(作成: 2001年11月4日, 最終更新: 2001年11月20日)