Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.02.2021
Сообщений: 203

Данные из первого приложения UDP появляются во втором приложении сразу, а не по нажатию кнопки

24.10.2023, 21:30. Показов 354. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как сделать чтобы данные из первого приложения UDP появляются во втором приложении по нажатию кнокпки
первое приложение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;
 
namespace ClientNet5
{
    public partial class Form1 : Form
    {
        private IPAddress serverIP = IPAddress.Parse("127.0.0.1"); // IP-адрес, на который отправляются данные (localhost)
        private int serverPort = 5055; // Порт сервера, на который отправляются данные
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void sendButton_Click(object sender, EventArgs e)
        {
            // Создаем новый экземпляр UdpClient для отправки данных
            using (UdpClient udpClient = new UdpClient())
            {
                // Получаем значения U и R из текстовых полей формы
                double U = double.Parse(uTextBox.Text);
                double R = double.Parse(rTextBox.Text);
 
                // Сериализуем данные в строку (в данном случае, просто конкатенация)
                string data = $"{U},{R}";
                byte[] buffer = Encoding.ASCII.GetBytes(data);
 
                // Отправляем данные по UDP на указанный IP-адрес и порт
                udpClient.Send(buffer, buffer.Length, new IPEndPoint(serverIP, serverPort));
            }
        }
    }
 
}
а вот второе приложение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
 
namespace ServerNet5
{
    public partial class Form1 : Form
    {
        private UdpClient udpClient;
        private int listeningPort = 5055; // Порт, на котором мы ожидаем получение данных по UD
 
        public Form1()
        {
            InitializeComponent();
            InitializeUdpListener();
        }
 
        private void InitializeUdpListener()
        {
            udpClient = new UdpClient(listeningPort); // Создаем UdpClient для прослушивания на указанном порту
            udpClient.BeginReceive(ReceiveCallback, null); // Начинаем асинхронно ожидать данные
        }
 
        private void ReceiveCallback(IAsyncResult result)
        {
            try
            {
                IPEndPoint senderEndPoint = new IPEndPoint(IPAddress.Any, 0);
                byte[] receivedData = udpClient.EndReceive(result, ref senderEndPoint);
                string data = Encoding.ASCII.GetString(receivedData);
 
                // Разбираем данные
                string[] parts = data.Split(',');
                if (parts.Length == 2)
                {
                    if (double.TryParse(parts[0], out double U) && double.TryParse(parts[1], out double R))
                    {
                        // Вычисляем I
                        double I = U / R;
 
                        // Выводим результат в ListBox на форме (с использованием Invoke, так как это важно для работы с UI)
                        listBox1.Invoke(new Action(() =>
                        {
                            listBox1.Items.Add($"U = {U}, R = {R}, I = {I}");
                        }));
                    }
                }
            }
            catch (ObjectDisposedException)
            {
                // Обработка исключения, которое может возникнуть при закрытии приложения
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Ошибка при приеме данных: {ex.Message}");
            }
 
            // Снова начинаем ожидать данных
            udpClient.BeginReceive(ReceiveCallback, null);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            // Получаем данные
            ReceiveCallback(null);
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
    }
}
Миниатюры
Данные из первого приложения UDP появляются во втором приложении сразу, а не по нажатию кнопки  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2023, 21:30
Ответы с готовыми решениями:

В приложении с подключений базой в таблицу нужно добавить адрес. С первого combobox выбираем область, и во втором combob
В приложении с подключений базой в таблицу нужно добавить адрес. С первого combobox выбираем область, и во втором combobox появляется...

Запуск LUA скрипта по нажатию кнопки в приложении Windows forms на C++
Здравствуйте. Был бы очень благодарен, если бы кто-нибудь подробно описал, как сделать так, чтобы в приложении созданном на Visual...

Данные с первого пакета не работают во втором!
Пакет номер один: package javaframe; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class...

4
sleep
 Аватар для I can
4916 / 4567 / 838
Регистрация: 13.04.2015
Сообщений: 9,698
24.10.2023, 21:48
Цитата Сообщение от Msrsis Посмотреть сообщение
по нажатию кнокпки
С UDP такое не прокатит. Данные растворятся в тумане. Поэтому и слушается порт постоянно.
0
0 / 0 / 0
Регистрация: 09.02.2021
Сообщений: 203
24.10.2023, 21:53  [ТС]
I can, в примере препода они отображаются при нажатии кнопки
0
sleep
 Аватар для I can
4916 / 4567 / 838
Регистрация: 13.04.2015
Сообщений: 9,698
24.10.2023, 21:58
Цитата Сообщение от Msrsis Посмотреть сообщение
отображаются при нажатии кнопки
Так может только отображаются по нажатию, а не принимаются(уже приняты?)

А преподаватель примером не поделился?
0
312 / 143 / 77
Регистрация: 23.08.2015
Сообщений: 455
25.10.2023, 12:38
Сделал все как у вас описано и не понял вопроса.
Запускаем второе приложение на прослушку. В первом вводим данные и нажимаем на отправку, видим во втором.
Что не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.10.2023, 12:38
Помогаю со студенческими работами здесь

Как по нажатию одной кнопки сделать аплоад сразу трех файлов?
Есть три штуки <input type=file ...> Как по нажатию одной кнопки сделать аплоад сразу трех файлов

Развертывания Windows приложений – установка сразу .NET и программы по нажатию одной кнопки
Здравствуйте, это мой третий вопрос из трех. Подскажите пожалуйста, как ни будь можно указать, чтобы программа не проверяла наличие...

Обработать данные первого листа на втором и нарисовать диаграмму.
здравствуйте! Помогите пожалуйста! На втором листе рабочей книги построить вспомогательную таблицу, содержащую информацию о...

Нужно чтобы на втором комбобоксе данные фильтовывались значением из первого
У меня на проекте есть combobox-ы на форме(Form1). данные на комбобоксе беру из базы данных. Нужно чтобы на втором комбобоксе данные...

Entity Framework. Не отображаются во втором окне данные из первого окна
Подскажите, пожалуйста, значит есть бд и на форме есть кнопка редактировать, при нажатии на которую, появляется еще одно окно и значит там...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru