私はここではほとんど知っていない非常に奇妙なバグを持っています。C#非同期受信は、システム全体のネットワーククラッシュを引き起こします。
私はハードウェアに接続するソケットを持っています。同期的に送信しますが、非同期で受信します。
私は、次のコードを介してデータを送信します。
_dicSockets[lclIPEndPoint].Send(lclBytesSent, lclBytesSent.Length, SocketFlags.None);
し、次のコードを経由して受信します。ハードウェアは10秒以内に、迅速に応答する場合、この方式は正常に動作します
protected virtual void receiveCallback(IAsyncResult ar)
{
PFDoReceiveDataArgs receiveData = (PFDoReceiveDataArgs)ar.AsyncState;
Socket lclSocket = receiveData.MySocket;
etc...
。しかし、ハードウェアが応答するのに(約5分)時間がかかると、狂った問題が発生します。この間に、whileループにあるスレッドがあり、コマンドが応答を受け取ったかどうかがチェックされます。
この間、ハードウェアは機能して機能していることがわかりました。私はコマンドを送信し、5分後に応答が到着します。 5回のうち4回、問題はありません、すべて期待どおりに動作します。同じコマンド、同じハードウェア、同じもの...
5回のうち1回、私のインターネット接続が失われたシステム全体のネットワーククラッシュがあります。
問題が何であるかわからないので、私はあなたからのアイディアを待って、必要に応じてコードを貼り付けます。
あなたが話しているハードウェアは何ですか? – RQDQ
"system-wide"とは、ネットワーク上のすべてのコンピュータが接続を失うか、コードを実行しているコンピュータだけを意味しますか? – Justin
コードを実行しているコンピュータだけです。 – sbenderli