2008年1月22日火曜日

SSL通信

uGNote+Rでデータのダウンロードに失敗は、初回のソケット通信がSSLだと起きやすいような気がしてます。初回ダウンロード時は Googleからreaderのfeedをgetするために、googleへのlogin処理をしてます。このときにhttpsアクセスを行います。
Notebookのfeedをgetするときはlogin処理を行わないので、初回のアクセスはhttpプロトコルになります。それ以外はreaderとNotebookはさほど処理が変わらないのに、アプリ起動直後にreaderをreloadしてダイアルアップ開始すると、かなりの確立でダウンロード失敗します

実験的にsoketでアクセスする前にネットワークに接続中か?確認するようにしてみようと思ったのですが、うまく確認することができませんでした。
c#で接続を確認する方法をググルと

InternetGetConnectedState APIを使用するとあったので試してみました


[DllImport("wininet.dll")]
public static extern bool InternetGetConnectedState(ref ulong dwFlags, int dwReserved);
ulong Flags=0;
bool bConnected = InternetGetConnectedState(ref Flags, 0);


結果はいつもtrueでした
なぜでしょう?


接続中であるかを確認して能動的に接続処理をするようにしたかったのだけど、ダメみたい
SSL通信前にダミーのhttpアクセスを起こすようにしたら改善するかな?

0 件のコメント: