Предложения по написанию системы обмена сообщениями TCP IP (клиент / сервер) с использованием Delphi 2010 - PullRequest
4 голосов
/ 23 декабря 2010

Я хотел бы написать систему обмена сообщениями с использованием TCP IP в Delphi 2010. Я хотел бы услышать, каковы мои лучшие варианты использования стандартных компонентов Delphi 2010 / indy для этого.

Я бы хотелхотел бы написать сервер, который выполняет прослушивание и пересылку сообщений на все машины в сети, где работает клиент.

1.) a.) клиенты могут отправлять сообщения на сервер для пересылки всем остальным клиентам b.) клиенты прослушивают сообщения от других отправителей (через сервер) и отображают сообщения.

2.) a.) Сервер может отправлять сообщения всем клиентам b.) Сервер пересылает любые сообщения от клиентов всем остальным клиентам

спасибо за любые предложения

ПРИМЕЧАНИЕ. Я не пишу программу обмена мгновенными сообщениями или чата.Это просто система, где пользователи могут отправлять оповещения / сообщения другим пользователям - они не могут отвечать друг другу!Никаких коммерческих, условно-бесплатных и т. Д. Ссылок - пожалуйста!Я хотел бы услышать о том, как вы будете писать этот тип системы и какие подходы вы выберете, и, возможно, об архитектуре обмена сообщениями TCP IP, которую вы будете использовать.Будь то прямой Winows API, компоненты Indy и т. Д. И т. Д.

Ответы [ 6 ]

4 голосов
/ 24 декабря 2010

Если это только Windows, и вы не хотите использовать сторонние библиотеки, вы можете пропустить TCP / IP и перейти к Почтовые ящики .

Редактировать : если вы хотите гарантированную доставку, лучше использовать именованные каналы. Этот вопрос SO содержит несколько nice ответов с примерами именованных каналов Delphi.

A mailslot - механизм одностороннего межпроцессные коммуникации (МПК). Приложения могут хранить сообщения в почтовый слот. Владелец почтового ящика может получать сообщения, которые хранятся там. Эти сообщения обычно отправлено по сети либо указанный компьютер или все компьютеры в указанном домене. Домен является группа рабочих станций и серверов, которые поделиться именем группы .

Им не нужен домен Windows, они работают по локальной сети.

DelphiPages имеет приятное сокращение при выполнении IPC в Delphi , включая почтовые ящики.

- Йерун

3 голосов
/ 09 ноября 2011

Если вы хотите сэкономить немного работы и использовать готовое решение:

в вышеуказанном порядке. Последние два приведены скорее в ознакомительных целях.

IMO 0MQ - лучший выбор - он продуман, легок, быстр и надежен.

0 голосов
/ 09 ноября 2011

Об использовании indy, например, в этой демонстрации: indy10clieservr.sourceforge.net ИЛИ с использованием пакетов TServerSocket и TClientSocket

-> теперь с демонстрационным примером x64 из INDY

0 голосов
/ 24 декабря 2010

Надежная работа - это больше работы, чем вы думаете - около 5% усилий, чтобы заставить ее работать, и 95% усилий, чтобы гарантировать, что она работает при любых обстоятельствах, включая отключение сети и т. Д. *http://www.csinnovations.com/framework_delphi.htm) вы можете увидеть, как я реализовал свою инфраструктуру межпроцессного взаимодействия. TCP содержит около 10000 строк кода с использованием компонентов Indy.

0 голосов
/ 23 декабря 2010

Есть клиент для мгновенных сообщений от Aid Aim: http://www.aidaim.com/products/msgcommunicator/manual_instant-messaging-im-sdk/index.php

0 голосов
/ 23 декабря 2010

Похоже на публикацию сообщений подписки. kbmMW предлагает один.

...