2008年01月18日

こりゃ、あかんわ ぱ〜と2

先日公開したSocketStreamクラスですが、まずい処理がありました。

Windowsでなのですが、ソケットハンドルを高水準入出力用のストリームハンドルに変換するために以下のようにしています。

ソケットハンドル
↓(_osfhandle)
ファイルハンドル
↓(_fdopen)
書き込み用ファイルポインタ
読み込み用ファイルポインタ

どれか1つをクローズすると、残りの3つも自動的に閉じるようなので、とりあえず読み込み用ファイルポインタをクローズしていたのです。

が、どうもDebugモードで動作させるとWSACleanup()でAbortしてしまうようです。よくは分からないのですが、WSACleanup()で開放されるべきところまで、先に開放してしまっているのかと。

対応としては、元にしているソケットハンドルを閉じることにすれば、問題はないようです。

はよ、なおさんと猫


良かったらクリックお願いします→banner_01.gif
posted by 台北猫々 at 23:31| Comment(0) | TrackBack(0) | 日記