如何加速端口扫描器C#?

时间:2014-06-02 03:45:04

标签: c#

我创建了非常简单的扫描程序,它将占用ip范围,在此范围内获取随机ip并检查特定端口是否打开。我使用TcpClient

string PORT_CHECK(string IPorNAME, int port)
{
    TcpClient tcpClient = new TcpClient();
    tcpClient.ReceiveTimeout = 10000;
    tcpClient.SendTimeout = 10000;
    try
    {
        tcpClient.Connect(IPorNAME, port);
        return IPorNAME + " : OPEN";
    }
    catch (Exception)
    {
        return IPorNAME + " : CLOSED";
    }
}

我使用threadpool

void main()
{
    while (stopper == false)
    {
        ThreadPool.QueueUserWorkItem(new WaitCallback(bGround));
        Thread.Sleep(1);
    }
}

它每秒检查大约10 ips,例如像VNC这样的扫描仪达到每秒大约500的速度,这主要差异来自于,以及如何加速我的代码?

1 个答案:

答案 0 :(得分:2)

您已将ReceiveTimeoutSendTimeout都设置为10000毫秒(10秒)。这意味着它将等待10秒直到它确定它不在那里,我建议大大降低这个数字,大约一秒钟(1000)或更低。

相关问题