Software Design

サポートページ

この記事を読むのに必要な時間:およそ 1 分

このページではSoftware Design 2016年7月号に関する補足情報を公開しています。

ダウンロード

P.46 「第1特集 プログラマが知っておくべきTCP/IP 第3章」

記事で紹介したサンプルプログラムがダウンロードできます。ダウンロードしたzipファイルを解凍してご利用ください。なお,⁠ruby」フォルダ内にあるudp_multi_sender_1st.rb ... _3rd.rbは,udp_multi_sender.rbを作成する際の試行錯誤中の参考コードです。詳細については,記事をご覧ください。

ダウンロード
サンプルプログラム(SP1_source.zip)

P.67 「第2特集 手を動かして学ぼう正規表現入門」

記事で紹介したサンプルテキストがダウンロードできます。Mac OS X環境の場合は「SP2_SampleText_UTF8+LF.zip」を,Windows環境の場合は「SP2_SampleText_SJIS+CRLF.zip」をダウンロードのうえ解凍して,ご利用ください。

Rubularhttp://rubular.com/のYour test string欄に入力する際や,Atomエディタに入力する際などに,各テキストファイルのデータをコピー&ペーストしてご利用ください。詳細は記事を参照のこと。

ダウンロード
Mac OS X用サンプルテキスト(SP2_SampleText_UTF8+LF.zip)
Windows用サンプルテキスト(SP2_SampleText_SJIS+CRLF.zip)

免責:本サンプルを使用することによって,使用者が受けたあらゆる不利益に対して,原著者および技術評論社はその責任を負いません。

P.46 第1特集 第3章へのご指摘に対する感謝とお詫び

(2016年6月29日更新)

Software Design 2016年7月号 第1特集 第3章の記事およびサンプルプログラムについて,輻輳制御をしないままUDPパケットをインターネットに流すことに問題があるのではないか,というご指摘を頂戴しました。

本稿ではTCPとの違いをあえて明確にすることや,スクリプト言語の特性を活かしたプログラムをできるだけシンプルにして,構造の理解しやすさや機敏な開発のプロセスを伝えるのが目的でした。

しかしご指摘のようにUDPの例は,インターネットに対して実施するには配慮にかけています。とくに初心者であっても,配布したソースコードをもとに,IPレベルでのDOS攻撃とかわらないことができ,インターネットを混乱させてしまうことになるかもしれません。

実際にインターネットでUDPの通信をする場合には,インターネット上の経路を飽和させてしまうことがないようにしなければならないむね,記事中でもあくまで誌上での実験であることと,実際に通信する場合に配慮・注意をするように記述するべきだったと思います。

ご指摘くださった方に感謝を申し上げるとともに,ご指摘を重く受け止め,この場を借りて読者の皆様へのお詫びと,サンプルプログラムの実施おけるご注意をお願い申し上げます。

サンプルプログラムを利用する際のご注意

インターネットに対してUDPで全力の送受信をすると,各経路において帯域を独占してしまうことがあります。サンプルプログラムには,輻輳制御など,帯域を飽和させないためのしくみが組み込まれていません。同プログラムをインターネットで用いることは,帯域の独占をしてしまうことがあります。動作の確認は,できるだけ閉じたLAN環境内でのみおこなうようご注意願います。

お詫びと訂正

本書の掲載内容に下記の誤りがございました。読者の皆様,および関係者の方々にご迷惑をおかけしましたことをお詫び申し上げます。

(2016年6月29日更新)

P.40 「リスト3」右段上から11行目


inet_ntop(serv.sin_family, &serv.sin_serv_name, sizeof(serv_name));


inet_ntop(serv.sin_family, &serv.sin_addr, serv_name, sizeof(serv_name));


P.55 本文左段上から8行目

udp_receive_server.rbでは、selectを使ってマルチプレクス処理をおこなっています。
udp_receive_server.rbでは、マルチスレッドを使った多重化(マルチプレクス)処理をおこなっています。

P.103 脚注1のURL(旧バージョンのリンク変更に伴う修正)

例)http://ftp.riken.jp/Linux/centos/6.7/isos/x86_64/
http://archive.kernel.org/centos-vault/6.7/isos/x86_64/