Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Java + Delphi +TraceMode


Автор: GWTMain 14.4.2010, 13:03
Извеняюсь создам топик тут, ненашел подходящего!
Как можно заставить общаться 3 приложения(на java delphi and tracemode) нужно просто пересылать ключ-значение.
К примеру так посылаю в приложение на delphi или tracemode строку close, то оно закроется.
DDE и ActiveX не предлогать. Тут еще что главное приложение на java(скажем сервер) рассылает эти соощения, а вот (delphi или tracemode(клиенты)) их ловит и этих клиентов может быть много, и их еше нужно различать.
Пока тока в голове крутится по tcp/ip гнать и все, а различать по номерам порта, но это кривой вариант.

Автор: MaxPayneC 15.4.2010, 08:30
Stdin/stdout?

Автор: dobrolub 15.4.2010, 08:43
>Пока тока в голове крутится по tcp/ip гнать и все, а различать по номерам порта, но это кривой вариант.

Хороший, если не единственный, вариан, раз клиент-сервер.

Автор: batigoal 15.4.2010, 08:52
Гнать инфу через TCP-сокеты. Для различения клиентов реализовать свой протокольчик, например, в plain text:
client_name|command|parameters

Автор: casey 15.4.2010, 09:16
Тут самое слабое звено это трейсмоуд. Каким образом ты собрался трейс моудом слушать сокет? Проблема в том что к трейс моуду можно писать длл-ки, функции которых можно (с ограничениями) вызвать из трейсмоуда. Но по-моему (где-то встречпал) в них не может быть длительных циклов ожидания сообщений.

Добавлено через 3 минуты и 35 секунд
Тут самое слабое звено это трейсмоуд. Каким образом ты собрался трейс моудом слушать сокет? Проблема в том что к трейс моуду можно писать длл-ки, функции которых можно (с ограничениями) вызвать из трейсмоуда. Но по-моему (где-то встречпал) в них не может быть длительных циклов ожидания сообщений. 

Автор: GWTMain 15.4.2010, 13:37
Цитата(batigoal @  15.4.2010,  08:52 Найти цитируемый пост)
Гнать инфу через TCP-сокеты. Для различения клиентов реализовать свой протокольчик, например, в plain text:

Нужно приложений запустить несколько, несколько приложений не могут слушать один порт, им нужно давать разные порта.


Цитата(casey @  15.4.2010,  09:16 Найти цитируемый пост)
Тут самое слабое звено это трейсмоуд. Каким образом ты собрался трейс моудом слушать сокет? П

Это не моя часть, ими другие занимаются=) А что tracemode не поддерживает сокеты?

Автор: batigoal 15.4.2010, 15:43
Цитата(GWTMain @  15.4.2010,  14:37 Найти цитируемый пост)
Нужно приложений запустить несколько, несколько приложений не могут слушать один порт, им нужно давать разные порта.

Так сервер ведь один. Java-приложение запускает серверный сокет на известном порту, а клинеты открывают сокеты с произвольных портов. То есть при подключении клиент сам инициирует установление соединения на известный порт, ну а потом уже связь может быть двунаправленной.

Автор: GWTMain 16.4.2010, 07:09
Цитата(batigoal @  15.4.2010,  15:43 Найти цитируемый пост)
Так сервер ведь один. Java-приложение запускает серверный сокет на известном порту, а клинеты открывают сокеты с произвольных портов. То есть при подключении клиент сам инициирует установление соединения на известный порт, ну а потом уже связь может быть двунаправленной.


Тут нету клиентов и серверов, есть одно приложение(на Java) оно запускает другие приложения и должно с ними общаться, ут еще есть плюсик может поможет, эти приложения находятся на одном компе=) Может ыть можно и без сокетов обойтись!

Автор: batigoal 16.4.2010, 10:06
GWTMain, если есть сокеты, значит, есть и сервер. Слушающий сокет - серверный, подключающийся - клиентский. Если java-приложение у тебя одно, то и слушающий сокет будет один.

Цитата(GWTMain @  16.4.2010,  08:09 Найти цитируемый пост)
Может ыть можно и без сокетов обойтись!

Ну мы использовали для решения этой задачи http://www.freedesktop.org/wiki/Software/dbus, но сокеты, имхо, проще и стандартней. Да он и сам работает поверх сокетов, по-моему.

Автор: GWTMain 16.4.2010, 11:03
Цитата(batigoal @  16.4.2010,  10:06 Найти цитируемый пост)
GWTMain, если есть сокеты, значит, есть и сервер. Слушающий сокет - серверный, подключающийся - клиентский. Если java-приложение у тебя одно, то и слушающий сокет будет один

Блин их может и не быть, это я просто так думал использовать их, это не означает, что так надо. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)