Страница 1 из 1
Чат по локальной сети средствами Delphi 7
Добавлено: 23 апр 2007, 12:25
ntoskrnl.dll
Решил написать программу для чата по локальной сети.
Идея следующая:
На сервере располагается Сервер базы данных и Remote Data Module.
База данных представляет собой файл формата MS Acces и содержит в себе 3 таблицы:
- Chat - здесь будут располагаться чат и все сообщения пользователей
- Users - здесь будут аккаунты юзеров
- OnlineUsers - здесь будут имена пользоателей, которые в данный момент в чате
Клиентские проги будут обращаться к базе даных через DCOMConnection и посылать/читать от туда сообщения.
Но есть большая проблёма!

Я не знаю как отслеживать события изменения таблицы, когда необходимо отобразить новое сообщение в окне чата.
Я не знаю как выводить текст в TRichEdit разным цветом.
Я не знаю как реализовать передачу файлов через Локалку.
Помогите пожалуйста.
А то мой проект (если его можно назвать проектом) просто сгорит!
Заранее спасибо!...
Re: Чат по локальной сети средствами Delphi 7
Добавлено: 23 апр 2007, 12:53
SergeyS
М-да, подобной реализации чата мне ещё встречать не приходилось.
В своей практике, всё что касается реализации COM объектов я стараюсь избегать эту технологию. Примеров этому тьма (из моей практики, приводить не буду), да и то, что Microsoft сама отказывается от дальнейшего развития идеи COM и делает ставку на .NET, тоже о чем-то да говорит (мне достаточно давно доводилось читать вводную статью про .NET, так там так и было сказано: COM отстой, и Microsoft думая о своих клиентах и предлагает технологию круче).
Вообще-то большинство идей чата основываются на сокетах. TClientSocket и TServerSocket. Может тебе в эту сторону порыть, да и в примерах с Delphi есть уже готовая реализация чата на сокетах. Кажется так и называется Chat.
Re: Чат по локальной сети средствами Delphi 7
Добавлено: 23 апр 2007, 13:40
SergeyS
М-да, подобной реализации чата мне ещё встречать не приходилось.
В своей практике, всё что касается реализации COM объектов я стараюсь избегать эту технологию. Примеров этому тьма (из моей практики, приводить не буду), да и то, что Microsoft сама отказывается от дальнейшего развития идеи COM и делает ставку на .NET, тоже о чем-то да говорит (мне достаточно давно доводилось читать вводную статью про .NET, так там так и было сказано: COM отстой, и Microsoft думая о своих клиентах и предлагает технологию круче).
Вообще-то большинство идей чата основываются на сокетах. TClientSocket и TServerSocket. Может тебе в эту сторону порыть, да и в примерах с Delphi есть уже готовая реализация чата на сокетах. Кажется так и называется Chat.
Re: Чат по локальной сети средствами Delphi 7
Добавлено: 23 апр 2007, 13:41
SergeyS
блин, тормазнул

Re: Чат по локальной сети средствами Delphi 7
Добавлено: 23 апр 2007, 13:42
ntoskrnl.dll
Ладно. Тогда подскажите какую-нить инфо по WinSock...
Tahank you...
Re: Чат по локальной сети средствами Delphi 7
Добавлено: 27 апр 2007, 07:46
Dr_Grizzly
Хочешь я тебе уже готовый кину с исходниками? Тоже делать было нечего, решил навоять. А пользуюсь все равно не своим а уже готовым бесплатным Intranet Chat
Re: Чат по локальной сети средствами Delphi 7
Добавлено: 28 апр 2007, 22:34
Naeel Maqsudov
ntoskrnl.dll,

Если хотите сделать именно с базой данных, то можно взять InterBase. Там есть Alert-ы. Все приложения подписываются на алерт, скажем, "Alert_Room1". Если обно приложение отправляет такой алерт, после постинга сообщения, то все кто подписан, его получат.

Такой же механизм есть в Oracle, но это уже будет совсем издевательство!
А если серьезно, то для широковещательных рассылок почитайте про mailslot-ы. (справка по Win32 API)
Работа с mailslot-ами абсолютно аналогична работе c файлами, просто с точки зрения ОС эти виртуальные файлы обеспечивают IPC (Inter process communication) - т.е. один процесс в него как бы пишет, а все (напрмиер все в домене или рабочей группе) одновременно читают.
Кстати, вместо сокетов можно организовать обмен по майлслотам и пайпам (Pipes - это как Mailslots, только не широковещательные, а между только двумя процессами.)
Теоретически, на майлслотах можно сделать полностью
бессервеный чат.
Re: Чат по локальной сети средствами Delphi 7
Добавлено: 03 май 2007, 23:40
Spil
А почему бы не воспользоваться Indy? Там есть IdIRC - на мой взгляд удобное решение. Читать Indy Help и RFC1459
http://www.irchelp.org/irchelp/rfc/rfc.html