Fórum Comando similiar ao Socket no Indy #337642

09/02/2007

0

Boa tarde,

Alguem poderi ajudar com o componente + o[u:b126c58ca5] comando [/u:b126c58ca5]que tem a mesma funcao do socket.sendtext(´texto) ?

Obrigado


Kitsystem

Kitsystem

Responder

Posts

09/02/2007

Massuda

O par básico do Indy é TIdTCPClient (lado cliente) e TIdTCPServer (lado servidor).

No caso do cliente, para escrever algo, use TIdTCPClient.Write ou TIdTCPClient.WriteLn.

Note que, geralmente, existe uma diferença básica entre o Indy e outros componentes de socket que é o fato do Indy usar IO síncrono enquanto outros componentes preferem IO assincrono. Por causa disso, em Indy quando você usa TIdTCPClient.WriteLn, esse método faz de fato a escrita dos dados e só retorna quando a escrita for concluída enquanto nos outros componentes geralmente tem algum evento que é disparado quando a escrita/leitura é completada (Indy não tem eventos desse tipo).


Responder

Gostei + 0

12/02/2007

Kitsystem

Massuda,

Muito obrigado, funcionou perfeitamente no Delphi e no Kylix com o comando IdTCPClient.Writeln(´protocolo´);

Mas nao consegui fazer o recebmento do pacote que pelo ClientScoket tem o evento OnRead que recebe qq byte

No Indy Client nao consegui fazer funcionar, testei alguns comandos e nada, percebi que tem alguns que colocam o terminador do campo etc etc, mas no meu caso eu fico recebendo de byte em byte

Se puder ajudar nesta dica, agradeco


Responder

Gostei + 0

12/02/2007

Massuda

Para ler: TIdTCPClient.Read ou TIdTCPClient.ReadLn. Exemplo (bem) básico:
var
  S: string;
...

IdTCPClient1.WriteLn(´PING´);

// espera a resposta do servidor
S := IdTCPClient1.ReadLn;
if S = ´PONG´ then ...



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar