2

現在、最終年度の理学士プロジェクトに向けて研究を行っています。最終製品には、屋内位置追跡機能が含まれます。従来の方法、または最も利用されている方法は RSSI 三角測量のようですが、PING 方法の精度を向上させたいと思っています。デバイスを使用すると、中程度の量の無線干渉が発生する場合があります)。

Linux ping ユーティリティの ping フラッド機能 (応答を待たずに複数の ping を送信できる) を模倣するソフトウェアを c# で作成できるかどうか疑問に思っていました。複数の ping を使用し、最初から最後までタイミングを合わせることで、より短い距離でこの方法を使用できるようになると仮定しています。

どうもありがとう

ディラン

4

2 に答える 2

1

これを試してくださいうまくいくことを願っています

private ArrayList IPList()
        {
            string myipsplit = string.Empty;
            string myip =
                Dns.GetHostAddresses(
                    Dns.GetHostName())[0].ToString();
            string[] myiparray = myip.Split(new[] {'.'});
            for (int j = 1; j < myiparray.Length; j++)
                myipsplit += myiparray[j - 1] + ".";
            var sb = new ArrayList();
            MyPing ping = delegate(int id)
                              {
                                  string ls = myipsplit + id;
                                  var pingSender = new System.Net.NetworkInformation.Ping();
                                  PingReply reply = pingSender.Send(ls, 0);
                                  if (reply != null)
                                      if (reply.Status == IPStatus.Success)
                                          sb.Add(ls);
                              };
            var asyncResults = new IAsyncResult[0x100];
            for (int i = 1; i < 0x100; i++)
                asyncResults[i] = ping.BeginInvoke(i, null, null);
            for (int i = 1; i < 0x100; i++)
                ping.EndInvoke(asyncResults[i]);
            return sb;
        }

        #region Nested type: MyPing

        private delegate void MyPing(int id);

        #endregion
于 2011-07-26T11:45:10.573 に答える
1

Ping.SendAsync()関数を使用する必要があります。MSDNページに記載されているように:

このメソッドへの各呼び出しは、スレッド プールから自動的に割り当てられる別のスレッドで実行されます。非同期操作が完了すると、PingCompleted イベントが発生します。SendAsync がイベントを発生させたときに呼び出されるメソッドを指定するには、SendAsync を呼び出す前に、イベントに PingCompletedEventHandler デリゲートを追加する必要があります。

これを行う方法の素晴らしい例を次に示します: http://msdn.microsoft.com/en-us/library/a63bsyf0.aspx

于 2011-07-26T11:33:51.307 に答える