请问有关C#写端口扫描的问题,谢谢高手!
try
{
this.progressBar1.Maximum = ijiesu;
this.progressBar1.Minimum = ikaishi;
this.richTextBox1.Text = "开始扫描端口: \n ";
this.richTextBox1.Update();
for(int i= ikaishi;i <ijiesu;i++)
{
this.progressBar1.Value= i;
TcpClient MyTCP = null;
try
{
MyTCP = new TcpClient(this.textBox1.Text,i);
this.richTextBox1.Text += "端口: "+i.ToString()+ "开放! \n ";
this.richTextBox1.Update();
}
catch
{
this.richTextBox1.Text += "端口 "+i.ToString()+ "没有开放 \n ";
this.richTextBox1.Update();
}
}
this.richTextBox1.Text = "扫描结束! ";
}
catch
{
MessageBox.Show( "扫描错误 ");
}
有try效率很慢啊~~有办法优化吗??
还有~通过MyTCP = new TcpClient(this.textBox1.Text,i);
好象不可以扫出开放端口啊~~
是不是方法错了?还是怎么的?
高人指点下~谢谢@!
------解决方案--------------------catch指定具体的Exception类型
设置一下超时时间
要不然扑捉所有异常的话超时默认是30S你要等30S才有回应