【141:5】四方田用プログラム開発日記
- 1 名前:◆KD3/aiko@管理人 ★ :2002/05/06(月) 13:53
- MSNやってる四方田君。
しばらくすると勝手にサインアウトしちゃうの。 それを防止するために、一役買ってあげる。 プログラム作ってあげちゃう。久々にJavaで。 日記です。
- 2 名前:◆KD3/aiko@管理人 ★ :2002/05/06(月) 13:58
- 原因はおそらく、
一定時間以上自分からのパケットを送出していないこと。 と判断。 だから一定時間毎にパケットを出すようにすればいいと思う。 そのために…。 が、JavaではICMPは扱えないからpingは使えない。 何使おう。echoも最近は受け付けるサーバないし。 daytime位しかないな。と、言うわけでdaytimeに決定。
- 3 名前:◆KD3/aiko@管理人 ★ :2002/05/07(火) 23:33
- 遅々として進まず。
daytime部分や、スレッドなどに実装はし、ほぼ完成と、いえるが、 コードがわかりにくいので、書き直したい。 が、イベント処理部分が良くわからん。 ふと思ったが、javaからwindowsのpingコマンドを呼び出すと言うことを、 考えていなかった。うーむ。 どうしよう。
- 4 名前:管理人 ★ :2002/05/09(木) 18:32
- ほぼ完成。
コードも整理してすっきり。 とりあえずバージョン1.0としよう。 あとは、いろいろ設定できるように。 しかし、試作品を使ってもらっても、効果がなかった…。 意味ねぇーー!!いったいどういう条件で切断されるんだろう。 早くも作る意義を失う。このままお蔵入りか…。
- 5 名前:◆KD3/aiko@管理人 ★ :2002/05/13(月) 03:18
- 今ふと思いついたのでメモ。
切断の原因について。 おそらく、TCP/IP通信まとめてタイムアウトの管理をしているんじゃなくて、 全部のセッションについて、個別にタイムテーブルを保持して、 監視していると思った。 MSNは、MSN自体へのサインインのセッションは永続的だが、 そのセッションを利用して行われる、(メッセンジャーしか利用しない状態でも 何らかの通信が行われている、)メッセンジャーサーバとのセッションは、 何もやりとりされないと、ある程度の時間で自動的に切断されるようだ。 だから、メッセンジャーのセッションが切れた後は、誰かがサインインするとか、 イベントがないと、MSN自体へのセッションでのやりとりが行われないので、 そのセッションがAirH"のタイムアウトに引っかかって、サインアウトしてしまう。 これで説明が付く。 さてこれを防ぐには、要はメッセンジャーで何かやりとりをするか、 MSNのセッションで、何かやりとり(こちらからのアクティブ通信) をすればよいのだが、それを外部のプログラムから行う方法は… 無理だ。 ということで、しゅーりょーーです。
|