void Button1Click(object sender, EventArgs e)
{
int BeginPort = Convert.ToInt32(nBeginPort.Value);
int EndPort = Convert.ToInt32(nEndPort.Value);
int i;
progressBar1.Maximum = EndPort - BeginPort + 1;
progressBar1.Value = 0;
listView1.Items.Clear();
IPAddress addr = IPAddress.Parse(tIPAddress.Text);
for (i = BeginPort; i <= EndPort; i++)
{
//Создаем и инициализируем сокет
IPEndPoint ep = new IPEndPoint(addr, i);
Socket soc = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
//Пытаемся соединиться с сервером
IAsyncResult asyncResult = soc.BeginConnect(ep,
new AsyncCallback(ConnectCallback),
soc);
if (!asyncResult.AsyncWaitHandle.WaitOne(30, false))
{
soc.Close();
listView1.Items.Add("Порт " + i.ToString());
listView1.Items[i-BeginPort].SubItems.Add("");
listView1.Items[i-BeginPort].SubItems.Add(" закрыт");
listView1.Refresh();
progressBar1.Value += 1;
}
else
{
soc.Close();
listView1.Items.Add("Порт " + i.ToString());
listView1.Items[i-BeginPort].SubItems.Add(" открыт");
progressBar1.Value += 1;
}
}
}