Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Windows.Forms;
- using System.Net;
- using System.Net.Sockets;
- using System.Threading;
- using System.Text;
- using System.Thread.Task;
- namespace PingUtility
- {
- public partial class PingForm : Form
- {
- public PingForm()
- {
- //задаем выравнивание формы по центру экрана
- this.StartPosition = FormStartPosition.CenterScreen;
- InitializeComponent();
- }
- private void buttonStart_Click(object sender, EventArgs e)
- {
- String ip, port;
- ip = ""; port = "";
- //если поля ввода IP адреса и номера порта заполненны - выполняется запрос на сервер
- if (textBoxIP.Text != "" && textBoxPort.Text != "")
- {
- ip = textBoxIP.Text;
- port = textBoxPort.Text;
- //создаем сокет (программный интерфейс для обмена данными между процессами) и в парамаетрах указываем в качестве типа передачи данных дэйтаграммы, использующиеся протоколом udp
- Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
- sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
- //создаем конечную точку соединения с помощью нашего IP адреса
- IPEndPoint iep = new IPEndPoint(Convert.ToInt64(ip), 9050);
- byte[] data = Encoding.ASCII.GetBytes("Наше сообщение");
- try
- { sock.Connect(ip, Int32.Parse(port)); }//выполняем соединение с указанным сервером и выполняем обработку возможных исключений с выводом сообщений об ошибке
- catch (SocketException ex)
- { MessageBox.Show("Error:\n" + ex + "!"); }
- catch (Exception ex)
- { MessageBox.Show("Error:\n" + ex + "!"); }
- finally
- {
- //если соединение установлено, тогда мы его закрываем и с задержкой в 250 миллисекунд выводим сообщение об успешно проделанной операции
- if (sock.Connected)
- {
- sock.Close();
- Thread.Sleep(250);
- MessageBox.Show("Successful connected!");
- }
- //выполняем отправку сообщения каждые 10 сек
- while (true)
- {
- if (sock.SendTo(data, iep) != 0)
- {
- MessageBox.Show("Данные отправлены!");
- Thread.Sleep(1500);
- SendKeys.Send("{ENTER}");
- }
- else {
- MessageBox.Show("Данные не отправлены, проверьте соединение!");
- break;
- }
- Thread.Sleep(8500);
- }
- }
- }
- else
- { //если поля ввода IP адреса и номера порта незаполненны - выполняется вывод сообщений в которых указывается то, какие конкретно поля ввода не заполненны
- if (textBoxIP.Text == "" && textBoxPort.Text == "") MessageBox.Show("IP адрес сервера и номер порта не указаны!"); // MessageBox.Show("Write the IP address and port!");
- else if (textBoxIP.Text == "") MessageBox.Show("IP адрес сервера не указан!!"); // MessageBox.Show("Write the IP address!");
- else
- {
- MessageBox.Show("Номер порта не указан!"); // MessageBox.Show("Write the port!"); }
- }
- }
- }
- //слушатель для закрытия приложения
- private void buttonCancel_Click(object sender, EventArgs e)
- {
- DestroyHandle();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement