C# 广播速度是否比特定端口的随机SYN/ACK扫描快?

C# 广播速度是否比特定端口的随机SYN/ACK扫描快?,c#,.net,networking,sockets,C#,.net,Networking,Sockets,我正在从事的项目使用P2P在对等点之间传输数据,这与Bittorrent非常不同。该组件对每个接口进行随机扫描,以查看网络上有哪些设备。到目前为止,它已经实现为套接字连接,通过尝试连接到程序的侦听端口来检查它是否成功连接。我想知道,如果把它撕下来,在每个界面上播放,会不会更快。这会更快/更可靠吗 连接的当前代码如下所示: Socket testSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType

我正在从事的项目使用P2P在对等点之间传输数据,这与Bittorrent非常不同。该组件对每个接口进行随机扫描,以查看网络上有哪些设备。到目前为止,它已经实现为套接字连接,通过尝试连接到程序的侦听端口来检查它是否成功连接。我想知道,如果把它撕下来,在每个界面上播放,会不会更快。这会更快/更可靠吗

连接的当前代码如下所示:

Socket testSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
testSock.BeginConnect(iep, new AsyncCallback(ConnectedAsync), testSock);
for (int i = 0; i <= iterations && Thread.CurrentThread.IsAlive; i++)
{
     if (testSock.Connected)
         break;
     Thread.Sleep(25); 
}
testSock.Close(0);
对于每个接口的子网

根据我在广播(Wireshark、DHCP等)方面的经验,我的印象是,广播的卡车装载速度更快,使用的资源更少。我问的原因是写这篇文章的人是个聪明人,我想知道他为什么不使用广播


那么,这值得付出努力吗

我怀疑你是对的,但怀疑是你应该开始研究,而不是停在哪里。既然你不是在说大量的努力来测试这个理论,为什么不试试看呢


--MarkusQ广播很容易被某些设备过滤掉。过了一个网段就不可靠了——如果你所做的仅限于一个局域网(或单个网段),那么广播的速度确实应该大大加快

也就是说,随机搜索永远不会是有效的或最优的。您可能会错过节点,出现扫描时间超出预期的问题等。由于您可以访问子网掩码,因此您应该能够非常轻松地计算网段上潜在有效节点的列表,但是,如果您被限制在单个网段(或其集合)内,那么广播就是出路


如果您正在搜索有效WAN节点列表(即不只是一个网段),则可能会发送大量不需要的流量。我的建议是,让每个节点都能够向彼此发送其他节点的缓存,然后需要一个节点的地址作为用户输入,以引导到网络上

谢谢,我会的。我之所以犹豫不决,是因为编写应用程序的人是一个相当优秀的程序员,但这似乎是缺乏网络知识。我不确定是否有什么东西我忽略了。我得做些调查。谢谢:)
Random r = new Random();