Моё меню Общее меню Сообщество Правила форума Все прочитано
Вернуться   uForum.uz > ИКТ и телеком > IT-индустрия > Софт > Программирование > .NET & ASP.NET
Сообщения за день Поиск
Знаете ли Вы, что ...
...для каждой темы существует свой раздел. Изучите структуру форума. Если соответствующего раздела нет, то всегда есть раздел "Разное" :)
<< Предыдущий совет - Случайный совет - Следующий совет >>

.NET & ASP.NET Вопросы программирования .NET, ASP.NET, Web Services и других WEB-технологий .NET.


Ответить

 
Опции темы Опции просмотра
Старый 21.01.2007 21:22   #1  
Гость
Аватар для crazy
Сообщений: n/a

Как организовать связь между приложениями?

Как можно организовать связь между двумя приложениями находящимися на одной машине?

Bir kompyuterda joylashgan ikki dasturiy ilovalar o`rtasida qanday qilib aloqa urnatish mo`mkin?
Ответить 
Старый 22.01.2007 12:56   #2  
Аватар для Серикбой
Оффлайн
Сообщений: 12
+ 0  0/0
– 0  0/0

Re: Как организовать связь между приложениями?

В смысле?
Опиши, пожалуйста, подробнее, что тебе нужно? Чтобы одно приложение вызывало другое?

System.Diagnostics.Process.Start()

Чтобы данные из одного приложения переходили в другое? Тогда через .ini файлы
__________________
Lingvo latino - non penis canino (lat)
Ответить 
Старый 22.01.2007 16:53   #3  
Real ID Group
Аватар для Aleksandr Vishinskiy
Оффлайн
Сообщений: 57
+ 3  9/6
– 0  0/0

Uzbekistan
Re: Как организовать связь между приложениями?

Точно не помню но я слышал что у каждого прирложения есть свой порт (ну там для обновлений например или для чего то еще) можно из одного приложения посылать* данные на другой порт
Ответить 
Старый 22.01.2007 17:36   #4  
Аватар для Серикбой
Оффлайн
Сообщений: 12
+ 0  0/0
– 0  0/0

Re: Как организовать связь между приложениями?

А смысл? Можно и дизассемблировать на лету и перепрописывать данные непосредственно в работе. Но зачем?
__________________
Lingvo latino - non penis canino (lat)
Ответить 
Старый 23.01.2007 16:30   #5  
Гость
Аватар для crazy
Сообщений: n/a

Re: Как организовать связь между приложениями?

при включении одного приложения второе должно узнать об этом. Приложения абсолютно не зависимы друг от друга.
Ответить 
Старый 25.01.2007 01:53   #6  
Гость
Аватар для crazy
Сообщений: n/a

Re: Как организовать связь между приложениями?

Господа програмисты всё оказалось жуда оддий.
Юзаем .NET ремоутинг. Далее кусок кода для принимающей стороны
Код:
      string theReply = "";
      BinaryReader reader;
      Socket connection;
      // wait for a client connection and display the text
      // that the client sends
      try
      {
        // Step 1: create TcpListener
        TcpListener listener = new TcpListener(Dns.GetHostAddresses(Dns.GetHostName())[0], 5011);
        // Step 2: TcpListener waits for connection request
        listener.Start();
        Console.WriteLine("Start listen...");
        // Step 3: establish connection upon client request
        while (true)
        {
          // accept an incoming connection
          connection = listener.AcceptSocket();

          // create objects for transferring data across stream
           reader = new BinaryReader(new NetworkStream(connection));
          theReply = "";
          // Step 4: read String data sent from client
          do
          {
            try
            {
              //qabul qilingan malumotlarni qayta ishlash
              Console.WriteLine(reader.ReadString());
            }
            // handle exception if error reading data
            catch (Exception)
            {
              break;
            }
          } while (theReply.IndexOf("TERMINATE") == -1 && connection.Connected);//true && connection.Connected);//

          // Step 5: close connection
          reader.Close();
          //socketStream.Close();
          connection.Close();
        }

      } // end try
      catch (Exception error)
      {
        Console.WriteLine(error.Message);
      }
Отправляющая сторона содержит ещё меньше кода

Код:
 BinaryWriter writer;
      
      TcpClient client;

      
      try
      {
        client = new TcpClient();
        // Step 1: Set Connection to the Server
        client.Connect(Dns.GetHostName(), 5001);
        // create objects for writing and reading across stream
        writer = new BinaryWriter(client.GetStream());
       
        writer.Write(@"<s>keldi keldi keldi<\s>");
        writer.Close();
        client.Close();
      }
      catch (SocketException)
      {
        Console.WriteLine("Soket error");
      }
      catch (Exception error)
      {
        Console.WriteLine(error.Message);
      }
Подробности в MSDN
Ответить 
Старый 23.05.2007 12:22   #7  
Real ID Group
Аватар для Evgeniy Pivovarov
Оффлайн
AKA:ExploiteR
Сообщений: 193
+ 46  47/37
– 1  0/0

UzbekistanОтправить сообщение для Evgeniy Pivovarov с помощью ICQОтправить сообщение для Evgeniy Pivovarov с помощью Skype™Мой мир
Толи я вопрос не понял, толи этот код предназначен для работы приложений по сети (ты изобразил серверную и клиентскую части) через сокеты. В МСДН действительно пример такого кода есть. только для приложений на одном компьютере такой вариант немного не оптимален ИМХО, если только сокеты через лупбек адаптер замыкать, но тогда еще придется правило для файрвола писать, если таковой будет использоваться у конечного пользователя.
__________________
Да пребудет с нами Сила, Ловкость, Интуиция и Выносливость.
Ответить 
Реклама и уведомления
Старый 23.05.2007 12:27   #8  
Real ID Group
Аватар для Evgeniy Pivovarov
Оффлайн
AKA:ExploiteR
Сообщений: 193
+ 46  47/37
– 1  0/0

UzbekistanОтправить сообщение для Evgeniy Pivovarov с помощью ICQОтправить сообщение для Evgeniy Pivovarov с помощью Skype™Мой мир
Цитата:
Сообщение от crazy Посмотреть сообщение
при включении одного приложения второе должно узнать об этом. Приложения абсолютно не зависимы друг от друга.
Тогда проще всего службу написать, которая допустим каждую 1 секунду проверяет диспетчер задач и при появлении нужного нам приложения запускает второе (в фоновом режиме например). а по нажатию клвиатурной комбинации (hotkey) перегружает данные из одного окна в другое, например через первый попавшийся tmp файл.
__________________
Да пребудет с нами Сила, Ловкость, Интуиция и Выносливость.
Ответить 
Старый 04.06.2007 22:48   #9  
Real ID Group
Аватар для Andrew Sklyarevsky
Оффлайн
Сообщений: 135
+ 22  63/50
– 1  0/0

UzbekistanОтправить сообщение для Andrew Sklyarevsky с помощью ICQLiveJournal
Например, можно в одном из приложений следить за Mutex-ом, который будет создаваться вторым приложением, которое будет записывать где-нибудь XML файл с данными (например, с сериализованным объектом) для первого приложения.
Ответить 
Старый 06.06.2007 20:46   #10  
Аватар для cascada
Оффлайн
none
none
Сообщений: 51
+ 3  4/3
– 0  0/0

Uzbekistan
а может через проекцию файла?одно приложение создаёт именованную проекцию,а в другом делается полностью идентичный вызов хэндлВоВторомПроцессе = CreateFileMapping(все параметры тоже идентичны ,а последний параметр имя объекта,а не НУЛЛ как это часто бывает);
Ответить 
Ответить




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Advertisement System V2.5 By Branden
OOO «Единый интегратор UZINFOCOM»


Новые 24 часа Кто на форуме Новички Поиск Кабинет Все прочитано Вверх