Windowsソケット "connect"関数の呼び出しを中断することが可能かどうか疑問に思っていましたか?接続ウィンドウwsaソケットを中断
問題は、私のコードでは別のスレッドで実行する必要があるということです(GUIスレッドが実行され続けるため)。しかし、プログラムが閉じられると、WSAETIMEDOUT例外のためにwatingしているスレッドが "connect"を呼び出しています。
アイデア?
更新/ヒント:私はconnect()が返ってきたときに有効なハンドルしか持っていないので、私はcantを呼び出しません。後者の場合は、ブロッキングソケットを使用していて、ファイアウォールされた場所にtcp-connectすることはできません。/
theres大きな問題は、私は操作を行うためのハンドルがありませんので、閉じることができません()。私は最初のソケットconnect()呼び出しが終了したときにのみ、このハンドルを持っています。 これはここで鶏卵問題です –
willsteel
あなたは 'socket()'によって返されたハンドルを閉じます。 'connect()'は既存のソケットハンドルを入力として受け取ります。新しいソケットハンドルは返されません。ですから、接続するスレッドと閉じるスレッドの両方が到達できる場所に 'socket()'のソケットハンドルを格納してください。 –