Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача данных между процессами. / 14 сообщений из 14, страница 1 из 1
22.10.2014, 16:21
    #38784312
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
Здравствуйте!
Помогите, пожалуйста, решить следующую задачу :
Есть 2 приложения клиент и сервер. Клиент должен вводить данные, сервер обрабатывать и выводить. При вводе данных срабатывает событие, как реагировать на него на сервере знаю, но как передать данные вместе с вызовом метода Set() не получается!
Сервер :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
private void Form1_Load(object sender, EventArgs e)
        {
            Thread thread = new Thread(Listener);
            thread.Start();
        }

        private void Listener()
        {
            while (true)
            {
                waitHandle.WaitOne();
                tbx_display.Text += "Какой-то текст!!!";
                waitHandle.Reset();
            }
        }



Клиент :
Код: c#
1.
2.
3.
4.
5.
6.
7.
EventWaitHandle resultEvent = null;
openExisting = EventWaitHandle.TryOpenExisting("eventWaitHandle", out resultEvent);
private void tbx_Typing_TextChanged(object sender, EventArgs e)
        {
            resultEvent.Set();
            Как здесь данные на сервер передать ???
        }



Заранее спасибо за помощь!
...
Рейтинг: 0 / 0
22.10.2014, 16:26
    #38784324
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
а просто WCF - не годится?
...
Рейтинг: 0 / 0
22.10.2014, 16:30
    #38784336
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
Нужно без WCF.
...
Рейтинг: 0 / 0
22.10.2014, 16:37
    #38784348
netivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
ну тогда сокеты. Тот же вцф, но низкий уровень. смысл?
...
Рейтинг: 0 / 0
22.10.2014, 16:37
    #38784350
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
ermanНужно без WCF.

Вам попроще? WebClient на клиенте, HttpListener на сервере.
...
Рейтинг: 0 / 0
22.10.2014, 16:43
    #38784362
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
Нашел иллюстрационный код:
Сервер
Код: 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.
public partial class MyService : ServiceBase
    {
        private HttpListener _httpListener;

        public MyService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            _httpListener = new HttpListener();
            _httpListener.Prefixes.Add("http://localhost:9999/");

            _httpListener.Start();
            _httpListener.BeginGetContext(Callback, _httpListener);
        }

        private void Callback(IAsyncResult ar)
        {
            try
            {
                var httpListener = (HttpListener)ar.AsyncState;
                var context = httpListener.EndGetContext(ar);

                httpListener.BeginGetContext(Callback, _httpListener);

                var longTimeString = DateTime.Now.ToLongTimeString();
                var buffer = Encoding.UTF8.GetBytes(longTimeString);

                context.Response.ContentEncoding = Encoding.UTF8;
                context.Response.ContentLength64 = buffer.Length;
                context.Response.OutputStream.Write(buffer, 0, buffer.Length);

                context.Response.OutputStream.Dispose();
            }
            catch (Exception ex)
            {
                
                
            }
        }

        protected override void OnStop()
        {
            _httpListener.Stop();
            _httpListener.Close();
        }
}



Клиент: достаточно из браузера перейти на http://localhost:9999/ или обычный Get-запрос организовать
...
Рейтинг: 0 / 0
22.10.2014, 16:45
    #38784363
Ilya81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
Такой вариант есть , если всё на одном компе. Можно ещё .Net Remoting или даже DDE. Это так, что случайно вспомнилось, ибо таких технологий существовало немеряно. Хотя, названные выше по мне логичнее, особенно WCF.
...
Рейтинг: 0 / 0
22.10.2014, 19:02
    #38784558
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
ermanНужно без WCF.
задача то учебная?

Что изучали?
(сокеты, http, примитивы синхронизации, COM)
...
Рейтинг: 0 / 0
22.10.2014, 22:12
    #38784685
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
Mutex, Semaphore, Event.
...
Рейтинг: 0 / 0
22.10.2014, 22:27
    #38784714
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
...
Рейтинг: 0 / 0
22.10.2014, 23:07
    #38784734
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
Промудохавшись со всякими пайпами,
использовал какое-то время SendMessage(WM_COPYDATA).
Но в итоге все-таки выбрал для себя

Mailslots

Там все просто и ясно.

Здесь код на VB6:
15416088
или
15416113

Единственное, что следует понимать - это "полудуплекс" без гарантии доставки. Зато не завешивает первое приложение, если второе вдруг не ответило. С пайпами на завешивание нарваться можно на раз-два.
...
Рейтинг: 0 / 0
23.10.2014, 01:47
    #38784804
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
Дмитрий77,
ну дак это же студент.. и надо ему реализовать в контексте изученного предмета, изопропил адекватно дал вектор.
...
Рейтинг: 0 / 0
23.10.2014, 09:23
    #38784906
netivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
ИзопропилermanMutex, Semaphore, Event.
через shared memory обмен данными вести нужно

здесь пример есть, правда чуток устаревший

http://books.google.ru/books?id=9fAmRzYaxFgC&pg=PT1075&lpg=PT1075&dq=c# shared memory between processes mutex&source=bl&ots=_mTx7EgnQk&sig=iyDTY9roFQbdYtfJ1P-ZjX5NZ7A&hl=ru&sa=X&ei=9_VHVPP5OKT9ywOpyYII&ved=0CFkQ6AEwBw#v=onepage&q=c# shared memory between processes mutex&f=falseух давно я такого не видел)
...
Рейтинг: 0 / 0
23.10.2014, 10:00
    #38784957
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между процессами.
netivanИзопропилпропущено...

через shared memory обмен данными вести нужно

здесь пример есть, правда чуток устаревший

http://books.google.ru/books?id=9fAmRzYaxFgC&pg=PT1075&lpg=PT1075&dq=c# shared memory between processes mutex&source=bl&ots=_mTx7EgnQk&sig=iyDTY9roFQbdYtfJ1P-ZjX5NZ7A&hl=ru&sa=X&ei=9_VHVPP5OKT9ywOpyYII&ved=0CFkQ6AEwBw#v=onepage&q=c# shared memory between processes mutex&f=falseух давно я такого не видел)

С 4 версии Net можно не извращаться с PInvoke: http://msdn.microsoft.com/ru-ru/library/dd267552(v=vs.110).aspx
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача данных между процессами. / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]