Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi: FireMonkey

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

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

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

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

Написание локальный чата - Delphi
Кто-нибудь пробывал писать локальный чат... Вот меня интересует как был написан IChat? Интересно юзались ли там сокеты?

Создание чата на Delphi - Delphi
Я хочу сделать свой чат, и мне надо чтобы текст добавлялся виде HTML кода в TWebBrowser, или в любой другой подобный компонент. С...

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

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

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

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

10
NOVICHOK2012
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 99
04.05.2014, 17:47 #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 обоих устройств. Так, наверное, даже лучше.
5
Infognom
0 / 0 / 0
Регистрация: 24.10.2009
Сообщений: 2
04.07.2014, 21:50 #3
NOVICHOK2012, чёто не могу понять, как сделать, чтобы сервер отправлял сообщение клиенту и у клиента появлялось : (
от клиента серверу идёт нормально, а как для сервера кнопку Send написать?
0
Tetronis
0 / 0 / 0
Регистрация: 12.09.2014
Сообщений: 2
12.09.2014, 04:47 #4
А почему не использовать Tethering? раз юзается XE6
0
TAZAQ
101 / 100 / 35
Регистрация: 28.01.2014
Сообщений: 304
12.09.2014, 19:11  [ТС] #5
Tetronis, можно подробней?
0
Tetronis
0 / 0 / 0
Регистрация: 12.09.2014
Сообщений: 2
15.09.2014, 01:22 #6
TAZAQ,
В сеплах к XE6 есть пример (Samples\Object Pascal\RTL\Tethering) + видео на ютрубе (https://www.youtube.com/watch?v=oeMQdvxi560)
0
Appi
20 / 20 / 6
Регистрация: 18.02.2015
Сообщений: 304
17.06.2015, 17:26 #7
Все таки подниму тему. Не совсем понятно как отправлять с сервера сообщение.
0
TAZAQ
101 / 100 / 35
Регистрация: 28.01.2014
Сообщений: 304
17.06.2015, 17:34  [ТС] #8
Appi,
Delphi
1
TAP.SendString(TM.RemoteProfiles[индекс_удаленного_профиля], 'Описание сообщения', 'сообщение');
Где TAP и TM - TetheringAppProfile и TetheringManager
0
Sir_holms
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 1
13.11.2015, 14:09 #9
Может кому понадобится. Вот на Инди написан пример простого сервер-клиентного приложения по отправки-получения текста. http://sourceforge.net/p/indy10clies...ng%20Exchange/
0
Bookkc1
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 673
13.12.2016, 16:33 #10
В сервере ругается на строчку
Delphi
1
s:= AContext.Connection.Socket.ReadLn;
Прошу помощи

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

Добавлено через 8 минут
где взять IdContext.dcu ?
0
serega2001
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 3
23.02.2017, 18:06 #11
Помгите пожалуйста, такая проблема возникла. Написал чат по вашим примерам При отправке русские буквы приходят в виде ????, с латинскими буквами и цифрами все норм, что делать?
0
23.02.2017, 18:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2017, 18:06
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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