C# 如何实现快速扫描局域网中开放特定端口的目标主机

如题,大概是类似于飞秋启动时那个获取好友列表那种的,首先要考虑效率

可以考虑用p2p协议. 也就是说用暴力扫描全网的电脑来进行节点机器的发现过程.
如果发现一个节点,那么就可以从节点中得到目前的节点网络拓扑图状况,并提交加入网络的请求.

这样的速度是飞快的...

每个节点功能相同,兼作服务器和客户机。 节点的管理有些象路由的管理,信息在网络中象水的波纹一样传播,直到“能量”耗尽。

那就多开一些线程并发处理,这样可以隐藏掉每个连接必须花费的延迟。

用socket udp通讯,可以广播局域网的地址。
关于socket udp

另外一个办法就是用 IP Multicasting in C#

http://www.codeproject.com/Articles/1705/IP-Multicasting-in-C