2012-03-06 13 views
2

クライアント/サーバーチャットアプリケーションを開発していて、クライアントウィンドウを閉じるときに次の例外が発生しました。トランスポート接続からデータを読み取ることができません:WSACancelBlockingCallの呼び出しによってブロック操作が中断されました

トランスポート接続からデータを読み取ることができません:WSACancelBlockingCallの呼び出しによってブロック操作が中断されました。

何が問題なのでしょうか?助けてください。

+0

このヘルプあなたのいずれかをしましたか?それとも、あなたはまだ問題を経験していますか? – mslot

答えて

3

読者またはライターのいずれかに.Close()を呼び出すと、基本となるストリームに呼び出すことができます。その後、そのリーダーまたはライターを使用しようとすると、このエラーが発生します。

1

結局のところ.Close();が呼び出され、これらのリーダー/ライターを呼び出すスレッドも閉じます。検討中のthis同様のコードのように、問題は単に.Close();ストリーム用と呼ばれる2つの場所で.Abort();を追加することによって解決することができます。

  swSender.Close(); 
      srReceiver.Close(); 
      tcpServer.Close(); 
      thrMessaging.Abort(); // this needed to be added to solve the problem 
関連する問題