『MXの次』はなんだっぽ?19

このエントリーをはてなブックマークに追加
41047
ノード情報周りって詳しく書いたことないと思うんで書きますが

まず、初期ノード追加で追加するとNoderefConst.txtに追加されます。

起動時には、このNoderefConst.txtとNoderefTemp.txtに書いてあるノード情報で
ノードバッファを初期化します。んで、1秒に1ノード接続に行きます。
この接続動作は、検索リンクがUP側2になるまで行います。2になれば
あとは接続を受けるだけの動作で他のホストに自ノードからは接続に行きません。

で、相手に接続にいくとWinnyのプロトコルでネゴしにいって、ネゴが成功すると
ポート情報や速度情報が得られますので記録しておきます。あまり速度に差が
あると他ノード情報を教えて切断依頼を出します
(これで向こうから切ってくれなかったらタイムアウトで強制切断)

また、他ノードから接続された場合、検索ノードのDOWN側が空いていれば
そのままネゴに入りますし、空いてなければ手持ちのノードバッファ内部のノード情報のうち、

「ネゴが完了して確実にWinnyクライアントと分かっていて、
なおかつPort0でなくてポート警告が出ていないノード」

だけを教えます。

また、プログラム終了時にはこれと同じものをNoderefTemp.txtファイルに書き出して
終了します。そのため、Winnyノードでないホスト情報が含まれているとしたら
NodeRefConst.txtファイルだけとなります。

ある程度使っていればTemp側の情報だけで再接続できるようになると思いますので、
使いこんでいる人はConstファイルは消してしまっていいと思います。