■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50
monazilla Part 3
- 890 :844 :02/12/27 21:02
- localDatSize = ローカルDATのサイズ
localLastLinePos = ローカルDATの最後の行の先頭位置
localLastLineSize = ローカルDATの最後の行のサイズ(localDatSize - localLastLinePos)
localLastLine = ローカルDATの最後の行そのもの
送信するヘッダ
Range: bytes=localLastLinePos-
サーバーからのレスポンス
serverContentLength = サーバーDATのlocalLastLinePosから最後までのバイト数
if ( serverContentLength < localLastLineSize ) {
//あぼーんで縮んだか、ローカルDATが腐ってると判断。
最初から読み直し。
} else if ( serverContentLength > localLastLineSize ) {
//新たに書き込みがあったと判断。
localLastLineSizeバイト、サーバーから読んでserverLastLineに格納
if ( memcmp( localLastLine, serverLastLine, localLastLineSize ) == 0 ) {
//最後の行が一致しているのであぼーんはなかったと判断。
//ただしあぼーん後の書き込みでたまたま最後の行が同じになった可能性あり。
続きから最後までサーバーから読んでローカルDATに連結。
} else {
//(*1)あぼーんがあったか、ローカルDATが腐ってると判断。
最初から読み直し。
}
} else { // サイズ同じ
//変更なしと判断。何も読まない。
//ただし、あぼーん後の書き込みでたまたまサイズが一致してしまった可能性あり。
//それでも次に書き込みがあれば、ほとんどの場合(*1)に行くと思われる。
}
226KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30