Rodrigo

O TCPServer fica escutando de maneira contínua....acho q naum existe a
necessidade de vc criar um loop.

Estou com o delphi 5 aqui na empresa e naum tenho este componente aqui, mas
o componente quando está ativo, fica lendo contuamente os dados q são
enviados para aquele endereço....

Bye

Rodrigo
----- Original Message -----
From: "Rodrigo Schiavo" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Thursday, March 31, 2005 8:49 AM
Subject: Re: [delphi-br] TIdTCPServer e TIdTCPClient


>
> Estou construindo um programa que precisa transmitir informações com uma
> filial, este programa tem uma interface Servidor e uma interface Cliente.
>
> Os procedimentos são os seguintes:
> Cliente Conecta-se ao servidor
> Servidor retorna através do comando WriteLn a sting CONECTADO
> Se CONECTADO então o cliente envia AUTENTICAR por meio de um WriteLn
também
> Após isto o cliente fica aguardando um retorno que pode variar entre
> algumas opções, caso seja autenticado ele vai receber um número inteiro
> que representa a quantidade de Bytes do arquivo que ele receberá.
> Porém preciso garantir que o arquivo recebido tenha o mesmo tamanho do
> arquivo que foi transmitido, por isso estas duas ultimas rotina ficam
> dentro de um LOOP onde o servidor envia o arquivo e aguarda um retorno e
> o cliente após receber o arquivo deve informar este retorno, e este
> processo deve repertir-se até que o arquivo do cliente tenha o mesmo
> tamanho do arquivo transmitido pelo servidor, e o servidor deve ficar
> reenviando o arquivo até que receba um retorno positivo do cliente, é
> aqui que esta o meu problema se eu fizer este procedimento fora do loop
> tudo funciona normalmente uma vez que o servidor envia o arquivo e
> termina a conexão, mas se coloco o servidor para aguardar um retorno
> este fica travado. Estou suspeitando que este problema ocorra devido a
> comunicação ser ASSINCROMA e o cliente pode estar enviando o retorno
> após o servidor ter lido o buffer, desta forma o servidor nunca vai
> receber o retorno e vai ficar paralisado.
> Abaixo seguem os LOOPS do cliente e do servidor, por favor veja se
> consegue me ajudar em algo. Se existe como enviar um comando e aguardar
> uma resposta nestes componentes, etc.......
>
> Procedimento executado no Servidor:
> ..........
> .....cdsTMP.SaveToFile(IP+'Tmp.cds');
> .....Dados := TMemoryStream.Create;
> .....Dados.LoadFromFile(IP+'Tmp.cds');
> .....repeat
> ..........with ATH.Connection do
> ..........begin
> ...............WriteInteger(cdsTMP.DataSize); //Envia o tamanho para o
> cliente
> ...............OpenWriteBuffer;
> ...............WriteStream(Dados); //Envia o arquivo para o cliente
> ...............CloseWriteBuffer;
> ...............Retorno := ReadLn; //Le a resposta do cliente
> ..........end;
> .....until (Retorno='OK');
> ..........
>
>
> Procedimento executado no Servidor:
> ..........
> .....Dados := TMemoryStream.Create;
> .....repeat
> ..........Tam := ReadInteger; //Le o tamanho do arquivo
> ..........ReadStream(Dados, Tam, False); //Le o arquivo
> ..........if (Dados.Size=Tam) then WriteLn('OK') else
> WriteLn('RETRANSMITIR'); //Envia OK se transmissao normal, ou reenvia
> pedido de retransmissao o que vai causar no servidor o reinicio do loop
> .....until (Dados.Size=Tam);
> ..........
>
>
>
> Rodrigo Ribeiro escreveu:
>
> > Jah usei para comunicação com o SPC aqui em Santa Catarina.
> >
> > Qual a sua dúvida? (seja o mais claro possível, incluindo info sobre
> > versão
> > do delphi, windows, servidor de comunicação, etc , etc).
> >
> > [ ]'s
> >
> > Rodrigo Ribeiro
> > ----- Original Message -----
> > From: "Rodrigo Schiavo" <[EMAIL PROTECTED]>
> > To: <delphi-br@yahoogrupos.com.br>
> > Sent: Thursday, March 31, 2005 7:55 AM
> > Subject: [delphi-br] TIdTCPServer e TIdTCPClient
> >
> >
> > >
> > >
> > >     Bom dia amigos, alguém trabalha com os componentes TIdTCPServer e
> > > TIdTCPClient??
> > >
> > >     Estou precisando tirar algumas dúvidas sobre eles.
> > >
> > >     [ ]'s Rodrigo
> > >
> > >
> > > --
> > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> > >
> > > Para ver as mensagens antigas, acesse:
> > >  http://br.groups.yahoo.com/group/delphi-br/messages
> > >
> > > Para falar com o moderador, envie um e-mail para:
> > >  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> >
> > --
> > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> >
> > Para ver as mensagens antigas, acesse:
> > http://br.groups.yahoo.com/group/delphi-br/messages
> >
> > Para falar com o moderador, envie um e-mail para:
> > [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> >
> >
> >
> > *Yahoo! Grupos, um serviço oferecido por:*
> >
> > *
> >
<http://br.rd.yahoo.com/SIG=12an4bghk/M=264105.3931087.6562589.1588051/D=brc
lubs/S=2137111264:HM/EXP=1112353831/A=2361264/R=6/SIG=10v4acpp0/*http://br.s
hopping.yahoo.com/>*
> >
> >
> >
> > ------------------------------------------------------------------------
> > *Links do Yahoo! Grupos*
> >
> >     * Para visitar o site do seu grupo na web, acesse:
> >       http://br.groups.yahoo.com/group/delphi-br/
> >
> >     * Para sair deste grupo, envie um e-mail para:
> >       [EMAIL PROTECTED]
> >
<mailto:[EMAIL PROTECTED]>
> >
> >     * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> >       Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
> >
> >
> >------------------------------------------------------------------------
> >
> >No virus found in this incoming message.
> >Checked by AVG Anti-Virus.
> >Version: 7.0.308 / Virus Database: 266.8.4 - Release Date: 27/3/2005
> >
> >
>
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
> Para ver as mensagens antigas, acesse:
>  http://br.groups.yahoo.com/group/delphi-br/messages
>
> Para falar com o moderador, envie um e-mail para:
>  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
>




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a