我目前正在为我最后一年的理学士学位项目做研究。最终产品将包括室内位置跟踪功能。传统的或最常用的方法似乎是 RSSI 三角测量,但我热衷于尝试提高 PING 方法的准确性,因为我认为这更适合可能遭受信号衰减的位置(我打算使用该设备可能会产生中等数量的 radio 干扰)。
我想知道是否可以用 c# 编写软件来模仿 linux ping 实用程序的 ping flood 功能(无需等待回复即可发送多个 ping)。我假设使用多个 ping 并从第一个到最后一个对它们进行计时将使该方法能够在更短的距离内使用。
非常感谢
迪伦
最佳答案
尝试这个希望它能正常工作
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
关于c# - 发送多个 Ping 而不等待回复 Windows C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6829141/