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

Передача данных из одного приложения в другое

21.10.2015, 15:55. Показов 8513. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть программа С# Windows Form, на выходе которой имею два массива. Я запустил эту программу и получаю каждую секунду новые массивы, вывожу их на график. Пришла пора их как-то передать в совсем другую программу. Просто, вот создам я пустой Windows Forms и надо бы написать что-то типа
Idata[],Qdata[] get(data from Windows Forms 1);
Text1 = Idata[];
И чтобы после запуска второго приложения оно автоматически брало данные из первого приложения и использовала их.

Как это хоть примерно сделать? Как это вообще сделать? Это как (сделать)?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2015, 15:55
Ответы с готовыми решениями:

Передача данных из одного приложения в другое
Приветствую! Ребзя, прошу помощи. Ищу то, не знаю что :D Суть такая... Есть два моих десктопных приложения, исходники доступны. ...

передача данных из одного приложения в другое на С# в Visual studio 2008
Меня в частности интересует следующее - запущены две странички , когда я закрываю одну , во второй происходит обнавление страницы, на мой...

Передача текстовых данных из одного приложения в другое с использованием оперативной памяти
Здравствуйте. Прошу помочь по данному вопросу. Есть два работающих приложения и мне нужно передать, например, значение текстовой...

19
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
21.10.2015, 16:04
WCF
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
21.10.2015, 17:01
Взаимодействие между двумя .NET приложениями
Способов много - сокеты, файлы, CallBack, DDE, БД, WCF, COM, named pipes...

Еще можно консольную прогу запустить с помощью Process.Start с перенаправлением вывода.

Подбирай под свой случай, оцени обьем данных, частоту вывода и прочее.
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
21.10.2015, 17:14  [ТС]
А я сейчас додумал, мне нужно сделать это так, чтобы работало и на одном компьютере, и на двух, когда один передает данные с генерирующей программы, а другой принимает с помощью приемной программы. Идеал - Ethernet-протокол или USB-3.0, но на двух компьютерах - это просто соединил два компа кабелем Ethernet или USB, а вот когда на одном - я слабо понимаю, как это?

Можете в эту сторону что-то предложить?

Суть в том, что в итоге мне надо поставить передатчик и приемник там, где нет других сетей (WiFi, например), и сделать передачу данных не с помощью WiFi, а с помощью программно-определяемой радиосистемы. Эта система принимает данные по Ethernet или по USB 3.0. Но бонусный вариант - как-то соединить выход и вход звуковой карты и передавать данные по звуковому каналу. Можно?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
21.10.2015, 17:31
Цитата Сообщение от lennen Посмотреть сообщение
мне нужно сделать это так, чтобы работало и на одном компьютере, и на двух,
Ну по сети наверно.
Цитата Сообщение от lennen Посмотреть сообщение
а вот когда на одном - я слабо понимаю, как это?
Просто самому себе через localhost, чтобы сохранить возможность работы на нексольких.

Добавлено через 5 минут
сервер -> данные -> сериализация -> ...Ethernet(сокеты, IP+Port)... -> клиент -> десериализация -> данные.

На одном компе IP+Port будет просто 127.0.0.1(localhost)+Port.
Приемный порт и отправной разные запили.

Добавлено через 4 минуты
Цитата Сообщение от lennen Посмотреть сообщение
Но бонусный вариант - как-то соединить выход и вход звуковой карты и передавать данные по звуковому каналу. Можно?
Можно все) Вопрос - как, через 5-ю точку или нет, и в сложности.
В любом случае универсальный способ - сеть, твоя инфраструктура ее поддерживает. Так что копай туда, я думаю.

Добавлено через 3 минуты
Ну на своем компе замыкать выход и вход аудио кабелем - сурово будет смотреться
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
21.10.2015, 17:43  [ТС]
О да, я подумал, Ethernet и локальная сеть это же почти одно и то же.
Буду копать, но для понятности: как примерно пишется программа, чтобы просто в итоге запустить приложение, в браузере набрать 127.0.0.1, и просто увидеть массивы данных в браузере?
наверное, там же все просто? Или как? можно ссылку какую-нибудь на подобную задачу.

сурово будет смотреться
Ну да! Но вообще это же возможно так сделать, все получится? В любом случае, разберусь сначала с вариантом передачи по сети.
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
21.10.2015, 17:50
Цитата Сообщение от lennen Посмотреть сообщение
в браузере набрать 127.0.0.1, и просто увидеть массивы данных в браузере?
Цитата Сообщение от lennen Посмотреть сообщение
наверное, там же все просто?
Ну как сказать просто..
Повесить http сервер (сделать свою прогу http сервером) (работает по порту 80\8080). И ты не упоминал браузер...

Цитата Сообщение от lennen Посмотреть сообщение
Но вообще это же возможно так сделать, все получится?
Думаю да. Но зачем - хз.

Добавлено через 4 минуты
lennen, ты уже столько всего собрал в кучу,
Ты действительно знаешь, чего хочешь?
И собираешься это реализовать?

А то, такое ощущение, что я как справочное бюро просто тут распинаюсь, пополняя твои знания,
которые завтра уйдут в небытие...
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
21.10.2015, 18:28  [ТС]
Да вот как раз сижу, у меня прога есть, с которой могу хоть сейчас передавать в цикле массивы Ipart и Qpart.
то есть один цикл = два переданных текущих массива Ipart и Qpart. Вообще я продолжу завтра, но я пока вообще не соображаю, как написать, что прога является сервером, открывает порт 8080 и идет на 127.0.0.1 и оставляет там два массива...
Вот сижу, пытаюсь разобраться и найти примеры.
То есть браузер нужен именно для того, чтобы просто проверить, что данные идут на указанный адрес. Чтобы потом проще было их оттуда доставать приемником, зная, что они там точно есть, такие, какими отображаются в браузере

Добавлено через 15 минут
Это в этом направлении? http://professorweb.ru/my/csha... l3/3_2.php
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
21.10.2015, 18:54
браузер и TCP клиент-сервер - это разные вещи. браузер - это http. и кухня там совершенно другая
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
21.10.2015, 19:02  [ТС]
Тогда не понимаю. Я же отправляю данные на 127.0.0.1:8080. Почему я не могу в браузере зайти на этот адрес и посмотреть чего-нибудь интересного? А как тогда в браузере посмотреть данные, переданные с программы?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
21.10.2015, 20:32
Цитата Сообщение от lennen Посмотреть сообщение
Тогда не понимаю. Я же отправляю данные на 127.0.0.1:8080.
Нужно на запросы по данному адресу:порту отвечать данными, поэтому нужно так или иначе
реализовать функционал http сервера.
1
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
22.10.2015, 13:04  [ТС]
А можете помочь разобраться вот с таким сервером?
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
 
namespace SocketServer3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            ServerClass sc = new ServerClass();
            sc.startServer(textBox1, richTextBox1);
        }
    }
 
 
    public class ServerClass
    {
        public void startServer(TextBox tb, RichTextBox rb)
        {
 
            IPEndPoint ip = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9939);
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 
            socket.Bind(ip);
            socket.Listen(20);
            rb.Text = rb.Text + "Waiting for client...";
            Socket client = socket.Accept();
            IPEndPoint clientep = (IPEndPoint)client.RemoteEndPoint;
 
            rb.Text = rb.Text + "Connected with " + clientep.Address + " at port " + clientep.Port;
 
            string welcome = tb.Text;
            byte[] data = new byte[1024];
            data = Encoding.ASCII.GetBytes(welcome);
            client.Send(data, data.Length, SocketFlags.None);
 
            rb.Text = rb.Text + "Disconnected from" + clientep.Address;
            client.Close();
            socket.Close();
        }
    }
}
У меня ошибок не возникает, но при попытке запустить приложение в текстовые поля ничего не выводится. Почему это может быть?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
22.10.2015, 14:56
Покопайся лучше тут.
http://habrahabr.ru/post/120157/

Добавлено через 2 минуты
Там в конце сорцы проектов есть.
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
23.10.2015, 11:55  [ТС]
С этим примером я разобрался, в браузере читаю данные, но.
Он консольный, а мне его как-то надо использовать в своем проекте Windows Forms. Что бы Вы предложили сделать? Мне нужно для начала хотя бы запихать его в свою программу приема сигналов. Чтобы это все работало в Windows Forms и также выдавало результат в браузер. Как это сделать?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
23.10.2015, 12:00
Цитата Сообщение от lennen Посмотреть сообщение
Он консольный, а мне его как-то надо использовать в своем проекте Windows Forms.
Цитата Сообщение от lennen Посмотреть сообщение
Как это сделать?
Ну классы выдерни в проект винформс и их там используй. За тебя вряд ли кто будет это делать.
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
23.10.2015, 13:22  [ТС]
Попробую но скиньте что-нибудь скинуть почитать, чтобы понять, как это сделать?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
23.10.2015, 13:35
Оформи сервер в виде Windows службы например, и посмотри тут еще.
https://github.com/happyt/webServer
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
23.10.2015, 15:14  [ТС]
Объясните тогда вкратце, как использовать классы. Я понял, что могу просто добавить проект Сервера в свой проект. Я имею всего 2 класса в этом добавленном проекте:
class Client и class Server
.
Если я на них как-то сошлюсь, они будут работать и не зависнут в теле моей программы? Вот как эти классы теперь использовать? Я просто тут не спец по классам, сижу разбираюсь с нуля
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
23.10.2015, 15:17
Цитата Сообщение от lennen Посмотреть сообщение
Я просто тут не спец по классам, сижу разбираюсь с нуля
Ну так и разбирайся с нуля. Отложи свою задачу обмена данными между приложениями и разберись в основах программирования вообще и ООП в частности. Начать читать можно, например, здесь
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
26.10.2015, 11:51  [ТС]
Поразбирался. А давайте, все-таки, начнем с более простого примера.
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;
using System.IO;
 
 
namespace TCP_Client
{
    public partial class TCP_Client : Form
    {
        string IP;
        string Port;
        string Namefile;
        Socket socket;
        EndPoint end;
 
        byte[] buffer = new byte[1024];
 
        public TCP_Client()
        {
            InitializeComponent();
            this.IP = "localhost";
            this.Port = "11000";
            this.Namefile = "name_file";
            // чтобы не ругалось на то, что компоненты формы
            // используются в другом потоке
            Control.CheckForIllegalCrossThreadCalls = false;
 
 
        }
 
        private void TCP_Client_Load(object sender, EventArgs e)
        {
            // инициализация сокета
            socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            // создание параметра для подключения к серверу
            IPAddress ip = IPAddress.Parse(IP);
            IPEndPoint ipe = new IPEndPoint(ip, int.Parse(Port));
            end = (EndPoint)ipe;
            socket.Connect(ipe);
            label2.Text = "Соединение установлено";
 
 
        }
 
        private void btn_Transfer_Click(object sender, EventArgs e)
        {
 
 
            string str = textBox3.Text;
            byte[] buffer = Encoding.Default.GetBytes(str);
            socket.Send(buffer, buffer.Length, 0);
 
 
 
        }
 
        private void btn_Close_Click(object sender, EventArgs e)
        {
            //закрываем сокет
            socket.Close();
            Close();
        }
 
    }
}
Это я откопал на этот раз и попробовал запустить. Появляется окно, но на лейбл ничего не выводит, хотя я сервер запустил другой на localhost и на порт 11000. В чем проблема? Вроде проще некуда код, а почему оно может лейбл не менять?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2015, 11:51
Помогаю со студенческими работами здесь

Передача данных с одного js на другое
Всем доброго вечера. Может быть что-то неправильно понимаю, но вопрос таков. Есть сайт на котором я вожу логин, по нажатию кнопки перехожу...

Передача данных из одного окна в другое
Доброго времени суток. Только начинаю программировать в WPF. При написании приложения возник вопрос: как передать значение переменной из...

Перенос данных из одного приложения в другое
Доброе утро. У меня есть несколько не связанных приложений. Одно из них (назовем его "START") имеет возможность запускать...

Экспорт базы данных из одного приложения в другое
Добрый вечер. Проблема такая. Необходимо из приложения на устройстве А экспортировать данные из бд(да чёрт с ним,можно даже всю бд с...

Посредством чего организовать передачу данных из одного приложения в другое
С другом придумали что-то вроде игры: один пишет программу которая запрашивает пароль(замок), другой - программу которая подберёт этот...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru