Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2010, 05:49   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию прием передача сообщения от сервера клиенту и на оборот

Здравствуйте.
Полазил по интернету и по форуму но нужной информации так и не нашел.
Соединить клиента и сервера получилось делаю так.
клиент
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
IdTCPC.Port:=1001;
IdTCPC.Host:='192.168.0.4';
IdTCPC.Connect;
end;
procedure TForm1.IdTCPCConnected(Sender: TObject);
begin
   memo1.Lines.Add(IdTCPC.IOHandler.ReadLn());
end;
сервер

Код:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
begin
   Acontext.Connection.SendCmd('connected');
end;
Вопрос в том на какое события происходит прием сообщения и в каком событии делать отправку.
Спасибо.
Lokos вне форума Ответить с цитированием
Старый 24.08.2010, 08:43   #2
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Переделал клиент следующим образом
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
s:string ;
begin
  s:=edit1.Text;
  IdTCPC.IOHandler.Write(s);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
IdTCPC.Port:=8088;
IdTCPC.Host:='192.168.0.4';
IdTCPC.Connect;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
IdTCPC.Disconnect;
end;
Сервер имеет такой вид
Код:
procedure TForm1.ServerConnect(AContext: TIdContext);
begin
memo1.Lines.Add('Пользователь подключен');
end;

procedure TForm1.ServerException(AContext: TIdContext; AException: Exception);
begin
memo1.Lines.Add(Aexception.Message );
end;

procedure TForm1.ServerExecute(AContext: TIdContext);
var
s:string;
begin
s:= AContext.Connection.IOHandler.ReadLn();
showmessage(s);
 end;
Подключение происходит но вот вывод сообщений не происходит не кто не скажет почему?
Делал все в точности по примеру, пример работает нормально
Lokos вне форума Ответить с цитированием
Старый 24.08.2010, 08:52   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Проблема решена заменил write на writeln.
Lokos вне форума Ответить с цитированием
Старый 24.08.2010, 08:54   #4
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Lokos Посмотреть сообщение
Проблема решена заменил write на writeln.
Появилась еще одна проблема русские буквы приходят в виде знаков вопроса (????) как можно избежать данной проблемы.
Так же принимаю сообщения клиентом следующим образом
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
   s:string;
begin
  s:= IdTCPC.IOHandler.ReadLn();
  memo1.Lines.Add(s);
end;
проблема в том что для того что бы получить сообщение приходится нажать кнопку. Как сделать так чтоб клиент сам определял что ему поступило сообщение и прочитывал его.
Пробовал сделать это на событие onconnect но программа просто зависает

Последний раз редактировалось Lokos; 24.08.2010 в 10:21.
Lokos вне форума Ответить с цитированием
Старый 24.08.2010, 18:24   #5
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

попробуй переделать
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
   s:string;
begin
  s:= IdTCPC.IOHandler.ReadLn();
  memo1.Lines.Add(s);
end;
на
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
   s:TStringList;;
begin
s:=TStringStream.Create;
begin
IdTCPC.IOHandler.ReadLn((s));
  memo1.Lines.Add(s);
end;
end;
bulldog5293 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как построить обратную связь от сервера клиенту. язык Delphi компонент IdTCPClient S_Yevgeniy Работа с сетью в Delphi 6 10.12.2009 11:13
IdHTTPServed delphi передача файла клиенту postal2 Работа с сетью в Delphi 1 02.05.2009 19:53
Проблема с отправкой MemoryStream от сервера к клиенту Ragnarek Работа с сетью в Delphi 4 07.02.2009 10:29
TServerSocket и TClientSocket передача и прием файла Vovandows Работа с сетью в Delphi 2 24.09.2008 09:23
Передача команд серверу и клиенту OrdJONY Работа с сетью в Delphi 9 28.08.2007 10:51