Russian Qt Forum

Qt => Работа с сетью => Тема начата: alixandra от Декабрь 13, 2006, 15:55



Название: Обмен данными по LAN
Отправлено: alixandra от Декабрь 13, 2006, 15:55
Подскажите:
Нужно обмениваться сообщениями между двумя приложениями, запущенными на разных комрьютерах, по локальной сети. Как это лучше реализовать?
До этого с распределенными приложениями дела вообще не имела, так что подойдут даже самые очевидные варианты  :)

Спасибо


Название: Обмен данными по LAN
Отправлено: Sergeich от Декабрь 13, 2006, 16:03
Все прогрессивное человечество обменивается данными через сокеты. См. QTcpSocket


Название: Обмен данными по LAN
Отправлено: Tonal от Декабрь 13, 2006, 20:05
Если под Win-дой - общий файл на шареном ресурсе это самое простое. ;-)


Название: Обмен данными по LAN
Отправлено: bigirbis от Декабрь 13, 2006, 20:08
В свое время этот вариант под Линуксом проходили - не в восторге. Самое тяжелое - слезть потом со всего этого.


Название: Обмен данными по LAN
Отправлено: Вячеслав от Декабрь 14, 2006, 00:39
Гы ;) Таки мож сразу на COM++ CORB'у  и иже с ними человеку показать - Чего сделать-то надо ? Мож просто БД хватит ?


Название: Обмен данными по LAN
Отправлено: bigirbis от Декабрь 14, 2006, 10:03
:) Тот же опыт показал, что обмен через базу данных может привести к большой головной боли...


Название: Обмен данными по LAN
Отправлено: sector от Декабрь 14, 2006, 10:12
Господа и дамы.... А чем плоха идея клиент-сервера??? Помоему самый простой и быстрый вариант)))


Название: Обмен данными по LAN
Отправлено: Tonal от Декабрь 14, 2006, 11:22
Ну, а если серьёзно, то всётаки что тебе от LAN надо?

Сокеты - достаточно просто, смотри например
$(QTDIR)\examples\network\chat

или:
$(QTDIR)\examples\network\fortuneclient
$(QTDIR)\examples\network\fortuneserver

Ну и все остальные ответы имеют право на жизнь, в зависимости от того, что конкретно нужно. ;-)


Название: Обмен данными по LAN
Отправлено: alixandra от Декабрь 14, 2006, 17:03
Спасибо! Сокеты вполне подходят  :)


Название: Обмен данными по LAN
Отправлено: f_evgeny от Декабрь 14, 2006, 19:38
Цитата: "Tonal"
Ну, а если серьёзно, то всётаки что тебе от LAN надо?

Сокеты - достаточно просто, смотри например
$(QTDIR)\examples\network\chat

или:
$(QTDIR)\examples\network\fortuneclient
$(QTDIR)\examples\network\fortuneserver

Ну и все остальные ответы имеют право на жизнь, в зависимости от того, что конкретно нужно. ;-)

А если без QT? Для переносимости. У меня аналогичная задача, делаю модуль логики программы, написано на C++ с использованием STL. Кмопилируется GCC под Linux и Win32 (mingw, кросскомпиляция из под Linux)
Хочется, чтобы модуль логики мог быть общаться с модулем GUI по сети. Так, чтобы модуль GUI мог быть написан с использованием любого инструментария.
Или Борланд, или QT или WEB интерфейс.
Для этого нужен пример общения при помощи сокетов, не привязанная к QT или чему то еще.
Может кто-то посоветовать проверенный, хорошо работающий, переносимый пример?


Название: Обмен данными по LAN
Отправлено: Tonal от Декабрь 15, 2006, 07:24
Если тебе хочется  "Или Борланд, или QT или WEB интерфейс" то проще всего строить общение поверх HTTP.
Самое простое - написать CGI-шку и подсунуть её Web серверу.

Обычно подобные схемы делают 3х звенными:
1) логика
2) сетевой сервер
3) клиент


Название: Обмен данными по LAN
Отправлено: Admin от Декабрь 15, 2006, 10:56
кстати есть еще либа php+qt
может она тебе поможет


Название: Обмен данными по LAN
Отправлено: f_evgeny от Декабрь 15, 2006, 16:32
Цитата: "Tonal"
Если тебе хочется  "Или Борланд, или QT или WEB интерфейс" то проще всего строить общение поверх HTTP.
Самое простое - написать CGI-шку и подсунуть её Web серверу.

Обычно подобные схемы делают 3х звенными:
1) логика
2) сетевой сервер
3) клиент

Я так и хочу. Вопрос - примеры кода сервера/клиента на чистом C++, причем желательно с условной компиляцияей для платформ gcc(Linux)/gcc(mingw)/BorlandBuilder6.


Название: Обмен данными по LAN
Отправлено: SLiDER от Декабрь 16, 2006, 02:50
Цитата: "f_evgeny"
Цитата: "Tonal"
Если тебе хочется  "Или Борланд, или QT или WEB интерфейс" то проще всего строить общение поверх HTTP.
Самое простое - написать CGI-шку и подсунуть её Web серверу.

Обычно подобные схемы делают 3х звенными:
1) логика
2) сетевой сервер
3) клиент

Я так и хочу. Вопрос - примеры кода сервера/клиента на чистом C++, причем желательно с условной компиляцияей для платформ gcc(Linux)/gcc(mingw)/BorlandBuilder6.


Очень советую обратить внимание на библиотеку ACE -> http://www.cs.wustl.edu/~schmidt/ACE.html Я тут, давно, немного о ней говорил, и ссылки на книжки давал (бумажные, на русском).


Название: Обмен данными по LAN
Отправлено: Tonal от Декабрь 16, 2006, 08:59
Цитата: "f_evgeny"
Вопрос - примеры кода сервера/клиента на чистом C++, причем желательно с условной компиляцияей для платформ gcc(Linux)/gcc(mingw)/BorlandBuilder6.

Boost.Asio.
Хотя про Borland Builder6 не знаю может его и не поддерживают.
Слишком глючная среда.


Название: Обмен данными по LAN
Отправлено: f_evgeny от Декабрь 17, 2006, 13:33
Цитата: "SLiDER"
Цитата: "f_evgeny"
Цитата: "Tonal"
Если тебе хочется  "Или Борланд, или QT или WEB интерфейс" то проще всего строить общение поверх HTTP.
Самое простое - написать CGI-шку и подсунуть её Web серверу.

Обычно подобные схемы делают 3х звенными:
1) логика
2) сетевой сервер
3) клиент

Я так и хочу. Вопрос - примеры кода сервера/клиента на чистом C++, причем желательно с условной компиляцияей для платформ gcc(Linux)/gcc(mingw)/BorlandBuilder6.


Очень советую обратить внимание на библиотеку ACE -> http://www.cs.wustl.edu/~schmidt/ACE.html Я тут, давно, немного о ней говорил, и ссылки на книжки давал (бумажные, на русском).

А не слишком ли это мощная вещь? Просто ли ей пользоваться?


Название: Обмен данными по LAN
Отправлено: bigirbis от Декабрь 17, 2006, 16:21
Цитировать
А не слишком ли это мощная вещь? Просто ли ей пользоваться?

Не очень уместный вопрос. Надо сказать, что и задача не простая.


Название: Обмен данными по LAN
Отправлено: Вячеслав от Декабрь 17, 2006, 23:27
Раз пошла такая пьянка - для написания на коленке(ногами сильно не бить - в свое время за 2 дня работающий кусок сварганили ) вполне подходит ice (http://www.zeroc.com/) Фсе там хорошо ... пока на отжираемые ресурсы не посмотришь :(


Название: Обмен данными по LAN
Отправлено: Vld2 от Декабрь 17, 2006, 23:55
f_evgeny,
Цитировать

Очень советую обратить внимание на библиотеку ACE

Что за зверь такой АСЕ?


Название: Обмен данными по LAN
Отправлено: Вячеслав от Декабрь 18, 2006, 23:12
Сюрприз ;) The ADAPTIVE Communication Environment  (ACE(TM)) и ссылочку давали ;)


Название: C++ Sockets Library кто нибудь пробовал?
Отправлено: f_evgeny от Декабрь 19, 2006, 18:34
А вот это, кто нибудь пробовал?
http://www.alhem.net/Sockets/


Название: Обмен данными по LAN
Отправлено: SLiDER от Декабрь 20, 2006, 03:10
Цитата: "f_evgeny"
А не слишком ли это мощная вещь?

Гммммм. Вопрос чисто риторический, это уже вам решать, под описанные вами задачи подходит великолепно.
Цитата: "f_evgeny"
Просто ли ей пользоваться?

Ну, это кому как, нам просто.  8) На самом деле, там нет ничего сложного, и книжки, опять таки, весьма пользительные есть. На мой вкус, лучшая библиотека в своем классе. Однако с Qt ее скрещивать (в одной проге) не шибко удобно, так как у ней свой цикл обработки сообщений и свои потоки. В автономном же приложении (как у вас) это просто клад. Да и лицензия у ней очень вкусная.  :D

добавлено спустя 19 минут:

 
Цитата: "Вячеслав"
Раз пошла такая пьянка - для написания на коленке(ногами сильно не бить - в свое время за 2 дня работающий кусок сварганили ) вполне подходит ice (http://www.zeroc.com/) Фсе там хорошо ... пока на отжираемые ресурсы не посмотришь :(


Рассматривали в свое время это чудо.  :D  Особливо понравился мануал на ... 1790 стр.  :shock: Вот эта штука действительно кажется, как бы это сказать по мягче .... слишком "мощной". Ребята решили догнать и перегнать  CORBA, и это им удалось на славу.  :wink: Кросплатформенность, кросязыковость, собственный язык Slice (Specification Language for Ice), типа корбовского IDL. Типа круто ... но весит все это, вдобавок, несравнимо больше чем ACE (тем более, что, если очень нужно, то у ACE тоже есть своя CORBA - TAO называется). Тем более, с Qt у нее те же проблемы, что и у ACE (у последней хоть ace_qtreactor есть). Хотя вещь, в соем сегменте, наверное очень хорошая. Однако ... однако.


Название: Обмен данными по LAN
Отправлено: Racheengel от Декабрь 20, 2006, 10:05
Пробовали мы АСЕ/ТАО.... ничего, кроме многомесячного геморроя, так и не получили....


Название: Обмен данными по LAN
Отправлено: zabivator от Декабрь 20, 2006, 16:09
Racheengel, может быть, вы не умеете их готовить?


Название: Обмен данными по LAN
Отправлено: Вячеслав от Декабрь 20, 2006, 19:41
Цитата: "Racheengel"
Пробовали мы АСЕ/ТАО.... ничего, кроме многомесячного геморроя, так и не получили....

А чуть более развернуто можно ?  Геморрой он ведь раааазный бывает :(