powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача данных между процессами.
14 сообщений из 14, страница 1 из 1
Передача данных между процессами.
    #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
Передача данных между процессами.
    #38784324
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а просто WCF - не годится?
...
Рейтинг: 0 / 0
Передача данных между процессами.
    #38784336
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно без WCF.
...
Рейтинг: 0 / 0
Передача данных между процессами.
    #38784348
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда сокеты. Тот же вцф, но низкий уровень. смысл?
...
Рейтинг: 0 / 0
Передача данных между процессами.
    #38784350
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ermanНужно без WCF.

Вам попроще? WebClient на клиенте, HttpListener на сервере.
...
Рейтинг: 0 / 0
Передача данных между процессами.
    #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
Передача данных между процессами.
    #38784363
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вариант есть , если всё на одном компе. Можно ещё .Net Remoting или даже DDE. Это так, что случайно вспомнилось, ибо таких технологий существовало немеряно. Хотя, названные выше по мне логичнее, особенно WCF.
...
Рейтинг: 0 / 0
Передача данных между процессами.
    #38784558
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ermanНужно без WCF.
задача то учебная?

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

Mailslots

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

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

Единственное, что следует понимать - это "полудуплекс" без гарантии доставки. Зато не завешивает первое приложение, если второе вдруг не ответило. С пайпами на завешивание нарваться можно на раз-два.
...
Рейтинг: 0 / 0
Передача данных между процессами.
    #38784804
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,
ну дак это же студент.. и надо ему реализовать в контексте изученного предмета, изопропил адекватно дал вектор.
...
Рейтинг: 0 / 0
Передача данных между процессами.
    #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
Передача данных между процессами.
    #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
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача данных между процессами.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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