トップ «前の日記(2006-04-12) 最新 次の日記(2006-04-14)» 編集

日々の破片

著作一覧

2006-04-13

_ CodeZine

HTTPサーバー4回目 NIOで非同期接続です。

最後にえらく殊勝なことを書いてますが(無謬じゃないかもとか)、結局やたらとテストをして思いも寄らぬほど時間を食ってしまいました。無謬ですな、多分(と付けざるを得ないのがあのてのプログラム)。

説明はさわりだけなので、コードそのものを味わってください。何度もセレクション呼び出しが走る様子が見えるでしょう。というか、Bufferのlimit、position、capacityを考えたやつは相当練れているとあらためて実感しました。

#ビジネスプログラムとか、それまでのストリームを使うようなのとは違って、デザパタ的なコードがほとんど無くなるのが興味深い点。でも、それが必要なんですな、書いていてわかったけど。っていうか、やっぱり低レベルなネットワークプログラミングは最高におもしろい。ACKやFINの息遣いが聴こえるってやつだ。(最近、聴いてなかったので相当勘が鈍ってたのでやたらと時間が取られたってのはあるかも。素振り重要というやつか)

_ Windows Update

今回は数も多いし、再起動も必要だ。

本日のツッコミ(全4件) [ツッコミを入れる]
_ Kazz (2006-04-13 06:54)

>やっぱり低レベルなネットワークプログラミングは最高におもしろい。<br>同感です。同様に、私もNIO、特にChannelやBufferは素晴らしいと思います。。ストリーム指向では扱いづらい、構造化データのネットワーク通信では威力を発揮しますよね。

_ arton (2006-04-13 09:17)

おもしろいですよね。<br>>構造化データ<br>この場合は、次に読み込むデータの型にあわせてBufferを切り替えるという意味ですか?

_ Kazz (2006-04-13 11:00)

>次に読み込むデータの型にあわせてBufferを切り替えるという意味ですか? <br>そうですね。どさどさっとバイト列を書き出したり、指摘通り、型にあわせて別なバッファにラップしたり、パースしてみないと判らない、例えばそこまでのデータ長等を書き出す部分をマークしておいて、最後にマークした部分だけを書き出す、なんてこともできますし。

_ arton (2006-04-13 13:44)

ああ、なるほど。<br>確かに、IO以外にもバイト配列を構造化して扱うのに利用できますね。それは考え付いていませんでした。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え