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