Advertisement
Guest User

Untitled

a guest
Dec 15th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.65 KB | None | 0 0
  1. using System;
  2. using System.Windows.Forms;
  3. using System.Net;
  4. using System.Net.Sockets;
  5. using System.Threading;
  6. using System.Text;
  7. using System.Thread.Task;
  8.  
  9. namespace PingUtility
  10. {
  11.     public partial class PingForm : Form
  12.     {
  13.         public PingForm()
  14.         {  
  15.             //задаем выравнивание формы по центру экрана
  16.             this.StartPosition = FormStartPosition.CenterScreen;
  17.             InitializeComponent();      
  18.         }
  19.  
  20.         private void buttonStart_Click(object sender, EventArgs e)
  21.         {
  22.             String ip, port;
  23.  
  24.             ip = ""; port = "";
  25.  
  26.             //если поля ввода IP адреса и номера порта заполненны - выполняется запрос на сервер
  27.             if (textBoxIP.Text != "" && textBoxPort.Text != "")
  28.             {
  29.                 ip = textBoxIP.Text;
  30.                 port = textBoxPort.Text;
  31.  
  32.                 //создаем сокет (программный интерфейс для обмена данными между процессами) и в парамаетрах указываем в качестве типа передачи данных дэйтаграммы, использующиеся протоколом udp
  33.                 Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
  34.                 sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
  35.                 //создаем конечную точку соединения с помощью нашего IP адреса
  36.                 IPEndPoint iep = new IPEndPoint(Convert.ToInt64(ip), 9050);
  37.                 byte[] data = Encoding.ASCII.GetBytes("Наше сообщение");
  38.  
  39.                 try
  40.                 { sock.Connect(ip, Int32.Parse(port)); }//выполняем соединение с указанным сервером и выполняем обработку возможных исключений с выводом сообщений об ошибке
  41.                 catch (SocketException ex)
  42.                 { MessageBox.Show("Error:\n" + ex + "!"); }
  43.                 catch (Exception ex)
  44.                 { MessageBox.Show("Error:\n" + ex + "!"); }
  45.                 finally
  46.                 {
  47.                     //если соединение установлено, тогда мы его закрываем и с задержкой в 250 миллисекунд выводим сообщение об успешно проделанной операции
  48.                     if (sock.Connected)
  49.                     {
  50.                         sock.Close();
  51.  
  52.                         Thread.Sleep(250);
  53.                         MessageBox.Show("Successful connected!");
  54.                     }
  55.  
  56.                     //выполняем отправку сообщения каждые 10 сек
  57.                     while (true)
  58.                     {
  59.                         if (sock.SendTo(data, iep) != 0)
  60.                         {
  61.                             MessageBox.Show("Данные отправлены!");
  62.                             Thread.Sleep(1500);
  63.                             SendKeys.Send("{ENTER}");
  64.                         }
  65.                         else {
  66.                             MessageBox.Show("Данные не отправлены, проверьте соединение!");
  67.                             break;
  68.                         }
  69.  
  70.                         Thread.Sleep(8500);
  71.                     }
  72.                 }
  73.  
  74.             }
  75.             else
  76.             {   //если поля ввода IP адреса и номера порта незаполненны - выполняется вывод сообщений в которых указывается то, какие конкретно поля ввода не заполненны
  77.                 if (textBoxIP.Text == "" && textBoxPort.Text == "") MessageBox.Show("IP адрес сервера и номер порта не указаны!"); // MessageBox.Show("Write the IP address and port!");
  78.                 else if (textBoxIP.Text == "") MessageBox.Show("IP адрес сервера не указан!!"); // MessageBox.Show("Write the IP address!");
  79.                 else
  80.                 {
  81.                     MessageBox.Show("Номер порта не указан!"); // MessageBox.Show("Write the port!"); }
  82.                 }
  83.             }
  84.         }
  85.  
  86.         //слушатель для закрытия приложения
  87.         private void buttonCancel_Click(object sender, EventArgs e)
  88.         {
  89.             DestroyHandle();
  90.         }
  91.     }
  92.    
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement