Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Как отправить сообщение клиенту


Автор: MERTVITz 18.11.2005, 13:29
Как отправить сообщение клиенту с сервера? и как потом обработаь получение сообщения у клиента.

Автор: Romikgy 18.11.2005, 18:04
Скачай с сайта инди демки , там все описанно , а вообще как я понял все в потоке крутится и через write(ln) & read(ln) , ну или через буфер/поток-стрим

Автор: MERTVITz 22.11.2005, 07:39
Я смотрел в инди примерах ничего подходящего нет. Проблема в том, что перед отключением клиента ему нужно послать сообщение и вот как это сообщение перехватить у клиента... Если можно небольшой примерчик

Автор: Romikgy 22.11.2005, 12:53
Это куски из демки:
на сервере есть такой код:
Код

if Command = 'QUIT' then
    begin
    AThread.Connection.WriteLn('Goodbye!');
    AThread.Connection.Disconnect;
    end


в клиенте на кнопке разрыва:
Код

procedure TfrmMain.btnDisconnectClick(Sender: TObject);
var otv: string;
begin
Writeln('QUIT');
otv:=ReadLn;
if otv='GoodBay!' then
begin
//Здесь делай что те нужно
end;
if IdTCPClient.Connected then
    try
    IdTCPClient.Disconnect; // we can disconnect from either the server or the client side
    btnConnect.Enabled := true;
    btnDisconnect.Enabled := false;
    except on E : Exception do
        ShowMessage(E.Message);
    end;
end;


А вооще я переделал только 2 функции , так что далее разбирайся сам smile смысл должен быть понятен.
В прикрипленном файле полный текст сервера и клиента из демок, там без переделки smile
Добавлено @ 13:03
Только так наверное правильнее (дельфи под рукой нет)
Код

IdTCPClient.Writeln('QUIT');    
otv:=IdTCPClient.ReadLn;

Автор: MERTVITz 22.11.2005, 14:35
Ну ето понятно вся проблема вот в чем что етот пример должен работать наоборот на сервере нажимаем кнопку Disconnect происходит отключение клиента, а перед отключением посылается сообщение которые надо поймать у клиента и показать пользователю

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)