109
 private void StartReceivingData(string ipAddress, int iPort)
    {
        try
        {
            if (!_bContinueReciving)
            {
                //initializeMainSocket(ipAddress, iPort);
                _mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);//<------HERE IS RAISED THE EXCEPTION
                _mSocket.Bind(new IPEndPoint(IPAddress.Parse(ipAddress), iPort));
                //  _mSocket.Bind(new IPEndPoint(IPAddress.Loopback, iPort));
                _mSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
                _mSocket.IOControl(IOControlCode.ReceiveAll, new byte[4] { 1, 0, 0, 0 }, new byte[4] { 0, 0, 0, 0 });
                //var 1
                _mSocket.BeginReceive(_buffReceivedData, 0, _buffReceivedData.Length, SocketFlags.None,
                                     new AsyncCallback(OnReceive), null);
                initializeLocalSocket();
            }
            else
            {
                _bContinueReciving = false;
                _mSocket.Close();
            }
        }
        catch (Exception exception)
        {
            Debug.WriteLine(exception);
        }
    }

理由がわかりません...うまくいきましたが、今はうまくいきません。誰かが私を助けることができますか?vlc でストリーミングしていますが、パケットを受信して​​レポートを作成し、ローカルでプレーヤーに再ストリーミングしたくありません。

4

14 に答える 14

111

ほとんどの場合、ソケットは何らかのプロセスによって保持されています。どれを見つけるために使用netstat -oします。

于 2012-05-05T12:46:46.853 に答える
2

Blob Storage に接続しようとしたときに、Azure 上の Web アプリでこれに遭遇しました。問題は、ブロブ ストレージの接続文字列をデプロイし忘れていたため、まだストレージ エミュレーターを指していたことが判明しました。約 3 回の試行が見られたため、クライアントに再試行ロジックが組み込まれている必要があります。ここ/devstorageaccount1はデッド景品です。

ここに画像の説明を入力

Azure で接続文字列を適切に設定することで修正されました。

于 2019-10-11T18:57:24.993 に答える
1

HttpClient 経由で Azure への発信呼び出しを行っていた Xamarin Forms アプリケーションから、同様の問題が発生しました。

私の場合、問題の根本的な原因は、セキュリティ スイートである BitDefender であることが判明しました。BitDefender は、アプリケーションへのアウトバウンド アクセスを脅威と見なしてブロックしていました。

このアプリケーションのファイアウォールに例外を追加したところ、問題は解決しました。

于 2021-10-15T20:06:51.093 に答える