Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2825 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Amigos,

Com o acbrtcpserver, e possivel comunicar com varios clientes ao mesmo tempo?

Tipo:

Vou term um servidor que fica esperando alguma coisa ou ate mesmo enviando para os clientes, e vou ter varios clientes que ficam enviando para o servidor ou recebendo alguma coisa do servidor.

Alguem ja fez algo parecido?

Francisco A Souza

  • Fundadores
Postado

Sempre o Cliente que deve iniciar a "conversa" e nunca o servidor...

Você pode enviar qualquer informação ou tipo de dado... no caso do TXT, leia-o em um StringList e envie como qq outra string

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Sempre o Cliente que deve iniciar a "conversa" e nunca o servidor...

Você pode enviar qualquer informação ou tipo de dado... no caso do TXT, leia-o em um StringList e envie como qq outra string

Daniel, mas se o cliente estiver conectado, o server pode iniciar uma conversa com ele né? ou enviar alguma coisa?

Postado

So mais uma coisinha... rsrs... no cliente vou usar o tcpclient do indy? minha aplicacao vai estar fazendo outros processos, vou precisar colocar ele numa thread? pra receber os dados e tratar?

Postado

perfeito... o problema é a conexão inicial, que só o Client pode iniciar... depois de conectado ambos os lados podem enviar dados...

Daniel, pesquisei na net, e fiz uma rotina para comunicar com o acbrtcp dentro de uma thread.

Bom ele conecta, envia dados... mas nao consegue receber, e possivel vc dar uma olhadinha pra ver onde estou errado? nao consegui descobrir ...

Obrigado...

Francisco A Souza

tcp.zip

Postado

Boa tarde, será que poderiam me dizer como posso enviar um arquivo utilizando o AcbrTCP.

Obrigado

Walter, se for string, vc pode usar um stringlist e enviar o text, fiz esse teste e foi blz.

Agora se for outro tipo de arquivo, vc pode criar uma propriedade pra enviar um stream, eu fiz isso no meu tcp, ate enviei aqui na mensagem anterior para atualizar o svn, mas é muito simples... entra no fonte do tcp, e copia a procedure enviarstring, e muda o tipo para stream.

Postado

francisco.itb, bom dia

Entendi, mas no exemplo do AcbrTCPServer fica do lado servidor correto onde fica escutando uma conexão. Mas e na parte cliente , como q funciona ? como que vc fez? qual componente utilizou para conectar no AcbrTCPServer ?

Obrigado.

Postado

Bom dia, eu abri o seu anexo, nao consegui simular o envio do Arquivo ( JPG ) para o servidor .

Consigo a conexão tudo, mas não o envio.

Como anexo uma imagem e envio ela.

Se poder me dar esta força fico grato, obrigado

Postado

valter, do jeito que esta entao ele funciona... eu fiz desse jeito: ele solicita ao server algum arquivo, e o mesmo envia por stream.

do servidor para o cliente faz, nao faz do cliente para o servidor.

Postado

Bom dia , Francisco.

Fiz um teste sendo enviado um arquivo .TXT, para o cliente, ele recebe o TXT so que o arquivo e gravado no disco em BRANCO ( 0 KB ), sabe como resolver isto ?

Tava olhando sua função ( Abaixo ) acho esta faltando alimentar o STREAM ( arq ) com os dados recebidos !!!

Obrigado

procedure TReadingThread.Execute;

begin

txt:=tstringlist.Create;

arq:=TMemoryStream.Create;

Fstring:='';

while not Terminated do begin

FString := FConn.RecvPacket(1000);

if Fstring='01' then

begin

fconn.RecvStream(arq,100);

///ACHO Q ESTA FALTANDO ALIMENTAR A VARIAVEL arq AQUI !!! ANTES DE GRAVAR O ARQUIVO

arq.SaveToFile('c:\PizzaRecebido.txt');

arq.Free;

Fstring:=fstring+' recebido stream ';

end;

// if fstring<>emptystr then begin

// txt.Add(fstring) ;

// txt.SaveToFile('C:\pdv.txt');

//end;

Synchronize(AtualizarMemos);

end;

txt.Free;

end;

Postado

walter, nao precisa criar nao.., pq a variavel arq ja esta sendo criada na classe da thread.

e esta sendo preenchida aqui:

fconn.RecvStream(arq,100);

e apos o rececimento ela é gravada.

arq.SaveToFile('c:\chico.txt'); aqui pode ser txt, jpeg, avi.. qualquer coisa...

arq.Free;

Fstring:=fstring+' recebido stream ';

no meu teste aqui funciona 100%

Postado

boa noite, Francisco.

Obrigado , primeiramente por responder minhas perguntas.

*** Estranho que o arquivo chega vazio , sabe me dizer oque pode ser ?

para enviar pelo servidor faco assim :

Clique do botão no SERVER:

Var

I : Integer ;

Selecionado : Boolean ;

tStream : TMemoryStream;

begin

tStream := TMemoryStream.Create;

tStream.LoadFromFile('c:\Pizza.TXT');

Selecionado := False ;

For I := 0 to CheckListBox1.Items.Count-1 do

begin

if CheckListBox1.Checked then

begin

Selecionado := True ;

tStream.Position := 0;

ACBrTCPServer1.EnviarStream( tStream, I );

end ;

end ;

if not Selecionado then

begin

tStream.Position := 0;

ACBrTCPServer1.EnviarStream( tStream, -1 ); // -1 envia para Todas conexoes

end;

  • 10 meses depois ...
  • Consultores
Postado

Gostaria de saber se ele serve para comunicação de banco de dados via internet...

 

Crie uma dúvida nova para um tópico novo conforme as regras. Veja neste em especial a "2.2 - Permaneça no assunto".

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 2825 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.