Форум программистов, компьютерный форум CyberForum.ru

Delphi: FireMonkey

Войти
Регистрация
Восстановить пароль
 
TAZAQ
100 / 99 / 34
Регистрация: 28.01.2014
Сообщений: 288
#1

Реализация чата на Indy - Delphi FireMonkey

01.05.2014, 17:00. Просмотров 5104. Ответов 10
Метки нет (Все метки)

Став обладателем RS XE6 решил опробовать delphi в андройде, в целом был удовлетворен, оставшись недовольным скоростью компиляции проекта.
Возникла идея создания велосипеда - управление ПК с помощью смартфона, сразу мысль - реализация чата между устройствами, но из-за платформы доступны остались Indy компоненты.
Вопрос: Есть ли у кого пример по настройке компонентов и отправке сообщений?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2014, 17:00     Реализация чата на Indy
Посмотрите здесь:

Indy IdTCPClient прием байта от Wifi устройства - Delphi FireMonkey
Всем доброго дня! Стоит студия XE7, делаю приложение по обмену данными мобильного устройства и AVR MK через WiFi модуль. Пытаюсь...

Реализация чата на Unix сокетах - C++ Linux
Здравствуйте, мне нужно написать чат на Unix сокетах. Как взаимодействует клиент и сервер я понимаю, но не особо понятно как сделать так,...

Реализация группового интерактивного чата - C#
Решил для личной практики реализовать интерактивной чат(что-то наподобие IRC). В интернете примеры имеются, но в основном они все...

Реализация комнат для чата - Delphi
Делаю чат на сокетах.Столкнулся с проблемой!Нужно сделать комнаты для пользователей и тут я попал в ступор!Может у кого есть готовые...

Реализация чата без перезагрузки страницы - JavaScript
Привет, Пишу многопользовательский чат, сервер написан на Java, фронтэнд на js, подключил передачу запросов post\get\put\delete через...

Реализация простейшего чата: как избежать ошибок? - C++
Я пишу штото типа чата, написал - шду ответа, но на одном компе запущу один клиент, роботает норм, запущу другой выдает ошибку. С етого и...

Реализация чата на ASP.NET с использованием Long Polling - C# ASP.NET
Я брал код с http://easy4web.ru/?p=695. Сам ничего не менял. Короче, в чём автор статьи допустил ошибку? Можете выложить рабочий...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NOVICHOK2012
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 99
04.05.2014, 17:47     Реализация чата на Indy #2
Могу только кодом помочь, сам уже пишу управление ПК с андроид смартфона. Дальше чат, думаю сам сможешь реализовать. Использованы компоненты TCP Client и TCP Server.

Клиент:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button8Click(Sender: TObject); //Подключение к серверу
begin
 idTcpClient1.Host:=edit1.text; //Вводим внутренний ip-adress сервера
 idTcpClient1.Port:=8080; //Порт клиента и сервера должен быть одним и тем же.
 idTcpClient1.Connect(); //Подключаемся к серверу
 if idtcpclient1.Connected=true then idTcpClient1.Socket.WriteLn('Client is connected'); //Если успешно подключились к серверу, то отправляем сообщение серверу о подключении. 
end;
 
procedure TForm1.Button3Click(Sender: TObject); //Отправка сообщения серверу
begin
 if idTcpClient1.Connected  then //Проверяем, есть ли подключение к серверу.
  begin
   idTcpClient1.Socket.WriteLn(edit2.text); //Посылаем текст, введенный в edit2, серверу.
   memo1.Lines.Add('['+Timetostr(time)+'] '+'Команда "'+ edit2.Text + '" послана серверу!'); //Добавляем запись в Memo клиента
  end
else memo1.Lines.Add('['+Timetostr(time)+'] '+'Вы не подключены к серверу!'); //Добавляем запись в Memo клиента
end;
Сообщение сервера клиенту добавляется так:
Delphi
1
Memo1.lines.add(IdTCPClient1.Socket.ReadLn);
Сервер:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.FormCreate(Sender: TObject);
begin
 idTcpServer1.DefaultPort:=8080; //Устанавливаем порт, такой же, как и у клиента
 idTcpServer1.Active:=true; //Включаем сервер
end;
 
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
s:string;
begin
s:= AContext.Connection.Socket.ReadLn; //Записываем в переменную "s" сообщение, присланное клиентом.
Memo1.Lines.add('['+Timetostr(time)+'] '+'['+AContext.Connection.Socket.Binding.PeerIP+'] '+ s); //Добавляем в Memo время, ip-adress клиента и сообщение
end;
Сообщение от сервера клиенту, отсылается так:
Delphi
1
AContext.Connection.Socket.Write('Сообщение');
Добавлено через 19 минут
TAZAQ, этот пример работает в только в внутренней сети. Кстати, можно сделать еще так: в программе на андроиде компоненты клиент и сервер, и на ПК те же два компонента, а не по одному, как я писал выше (на андроиде TCP Client, на ПК TCP Server), но тогда нужно знать внутренний ip обоих устройств. Так, наверное, даже лучше.
Infognom
Сообщений: n/a
04.07.2014, 21:50     Реализация чата на Indy #3
NOVICHOK2012, чёто не могу понять, как сделать, чтобы сервер отправлял сообщение клиенту и у клиента появлялось : (
от клиента серверу идёт нормально, а как для сервера кнопку Send написать?
Tetronis
0 / 0 / 0
Регистрация: 12.09.2014
Сообщений: 2
12.09.2014, 04:47     Реализация чата на Indy #4
А почему не использовать Tethering? раз юзается XE6
TAZAQ
100 / 99 / 34
Регистрация: 28.01.2014
Сообщений: 288
12.09.2014, 19:11  [ТС]     Реализация чата на Indy #5
Tetronis, можно подробней?
Tetronis
0 / 0 / 0
Регистрация: 12.09.2014
Сообщений: 2
15.09.2014, 01:22     Реализация чата на Indy #6
TAZAQ,
В сеплах к XE6 есть пример (Samples\Object Pascal\RTL\Tethering) + видео на ютрубе (https://www.youtube.com/watch?v=oeMQdvxi560)
Appi
20 / 20 / 6
Регистрация: 18.02.2015
Сообщений: 300
17.06.2015, 17:26     Реализация чата на Indy #7
Все таки подниму тему. Не совсем понятно как отправлять с сервера сообщение.
TAZAQ
100 / 99 / 34
Регистрация: 28.01.2014
Сообщений: 288
17.06.2015, 17:34  [ТС]     Реализация чата на Indy #8
Appi,
Delphi
1
TAP.SendString(TM.RemoteProfiles[индекс_удаленного_профиля], 'Описание сообщения', 'сообщение');
Где TAP и TM - TetheringAppProfile и TetheringManager
Sir_holms
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 1
13.11.2015, 14:09     Реализация чата на Indy #9
Может кому понадобится. Вот на Инди написан пример простого сервер-клиентного приложения по отправки-получения текста. http://sourceforge.net/p/indy10clies...ng%20Exchange/
Bookkc1
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 579
13.12.2016, 16:33     Реализация чата на Indy #10
В сервере ругается на строчку
Delphi
1
s:= AContext.Connection.Socket.ReadLn;
Прошу помощи

Добавлено через 26 минут
Насколько я понял, проблема в компоненте AContext. Как его подключить и где его взять ?

Добавлено через 8 минут
где взять IdContext.dcu ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2017, 18:06     Реализация чата на Indy
Еще ссылки по теме:

Трудности при написании чата. Покажите простой пример чата на 2 человека. - PHP
Ребят, уже с ума сошел, но никак не сделаю нормальный чат в PHP. Я делаю так: есть textatea и куда потом через POST записывается текст в...

Indy 8 и Indy 10. Старая и новая версия - Delphi
Есть строчки var c: char; myFile: file; HasChild: bool; s,RecvBuf,path: string; sr,srChild: TSearchRec; CRC,MasterCRC:...

indy 10 - Delphi
Поставил indy 10,так как был необходим модyль IdAttachmentFile,но как оказалось после yстановки в 10 инди его тоже НЕТ,с чем это может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
serega2001
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 3
23.02.2017, 18:06     Реализация чата на Indy #11
Помгите пожалуйста, такая проблема возникла. Написал чат по вашим примерам При отправке русские буквы приходят в виде ????, с латинскими буквами и цифрами все норм, что делать?
Yandex
Объявления
23.02.2017, 18:06     Реализация чата на Indy
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru