Página 1 de 1

Pode 1 Server TCP enviando para 2 Clients na mesma porta ?

MensagemEnviado: 26 Nov 2010 13:22
por andre_luis
Minha dúvida é saber se ao o cliente 1 receber o pacote, se o cliente 2 não recebe ?

Re: Pode 1 Server TCP enviando para 2 Clients na mesma porta

MensagemEnviado: 26 Nov 2010 13:28
por Rodrigo_P_A
andre_teprom escreveu:Minha dúvida é saber se ao o cliente 1 receber o pacote, se o cliente 2 não recebe ?


claro. imagina o servidor HTTP, como ele funciona? num é sempre na porta 80?

e o ftp num é sempre na porta 21?

nestes servidores você pode ter vários clientes conectados, todos na mesma porta.

eu já criei aplicações desta forma e funciona.

o protocolo TCP já trata isso, pelo menos com sockets é assim

não sou expert, mas funciona!

Re: Pode 1 Server TCP enviando para 2 Clients na mesma porta

MensagemEnviado: 26 Nov 2010 16:02
por andre_luis
Rodrigo,

Também não sou expert, mas acredito que exista porta de entrada e de saída dos aplicativos. No caso desses que voce mencionou, são portas de entrada, correto ? O Cliente acessa nessas portas.

No meu caso, tenho um dispositivo que funciona como server, e com uma porta fixa.

Acabei fazendo um teste, que me confirmou o que eu suspeitava.
Não funciona.

Conectei 2 instancias do Hiperterminal ( conexão Winsock TCP ) na mesma porta, e no mesmo instante que conectava por uma instancia, parava de receber os dados pela outra ( e acabava sendo desconectado ), e vice-versa.


Obrigado.
+++

Re: Pode 1 Server TCP enviando para 2 Clients na mesma porta

MensagemEnviado: 26 Nov 2010 16:15
por Rodrigo_P_A
andre_teprom escreveu:Rodrigo,

Também não sou expert, mas acredito que exista porta de entrada e de saída dos aplicativos. No caso desses que voce mencionou, são portas de entrada, correto ? O Cliente acessa nessas portas.

No meu caso, tenho um dispositivo que funciona como server, e com uma porta fixa.

Acabei fazendo um teste, que me confirmou o que eu suspeitava.
Não funciona.

Conectei 2 instancias do Hiperterminal ( conexão Winsock TCP ) na mesma porta, e no mesmo instante que conectava por uma instancia, parava de receber os dados pela outra ( e acabava sendo desconectado ), e vice-versa.


Obrigado.
+++


Eu criei um servidor que aceita várias conexões sempre na mesma porta, na hora que eu recebo uma solicitação eu associo a conexão a um outro socket e uma classe e trato tudo.

você deve estar fazendo alguma coisa errada.

no meu software eu tenho mais de 100 equipamentos conectados no mesmo servidor e se comunicando com classes independentes, o que eu mando para 1 só para para ele etc...

MensagemEnviado: 26 Nov 2010 16:23
por proex
Pode 1 Server TCP enviando para 2 Clients na mesma porta ?

Pode.

Neste caso o Server abrirá dois sockets, um para cada cliente.

Não importa se esses clientes estão usando a mesma porta.

MensagemEnviado: 26 Nov 2010 17:39
por andre_luis
Talvez por isso não funcione com 2 clientes, pois o dispositivo server não deve estar abrido outro socket da maneira como voce citou.


AT+

MensagemEnviado: 27 Nov 2010 09:20
por Rodrigo_P_A
andre_teprom escreveu:Talvez por isso não funcione com 2 clientes, pois o dispositivo server não deve estar abrido outro socket da maneira como voce citou.


AT+



Eu vou disponibilizar um software TCP Server, TCP Client onde você pode abrir uma instancia do TCP Server e várias do TCP CLient, quando você solicita a comunicação via TCP CLient eu crio uma nova instancia e associoa a solicitação a um novo socket, e a comunicação fica entre uma instancia do server e o client, você pode abrir vários clients e se conectar ao mesmo server.

daqui a pouco eu passo o link

MensagemEnviado: 27 Nov 2010 10:27
por Rodrigo_P_A
Segue o link para o software que eu mencionei:


http://www.kitmcu.com.br/produtos/softw ... KitMCU.zip


Baixe ele e faça o teste, acho que é a melhor forma de você entender.

Trata-se de um software com terminal simples TCP Server e TCP CLient.

Quando eu tiver tempo vou incrementar mais o software, mas já dá pra vc testar e constatar que é possível fazer várias conexões na mesma porta.

MensagemEnviado: 27 Nov 2010 11:06
por andre_luis
Rodrigo,


Bacana o programa.
Olha, eu testei, mas não funcionou da maneira como eu esperava.

Cada vez que instancio um Cliente, o programa abri outro Server, e cada cliente envia para o seu server, realmente pela mesma porta.

Porém, seria interessante se tivesse como testar apenas 1 server instanciado enviando para 2 clientes.

+++

MensagemEnviado: 27 Nov 2010 11:10
por Rodrigo_P_A
andre_teprom escreveu:Rodrigo,


Bacana o programa.
Olha, eu testei, mas não funcionou da maneira como eu esperava.

Cada vez que instancio um Cliente, o programa abri outro Server, e cada cliente envia para o seu server, realmente pela mesma porta.

Porém, seria interessante se tivesse como testar apenas 1 server instanciado enviando para 2 clientes.

+++



Mas é um server só, olhe que é o mesmo aplicativo em instancias diferentes, mas é sempre o mesmo server.

pense sobre o WebServer, ele funciona como vc disse.

agora, eu não sei o que vc quer fazer, vc quer transmitir algum tipo de stream de aúdio por exemplo?

se for isso nunm precisa usar TCP, faça via UDP e envie via broadcast por exemplo, acho que funciona melhor

ou até mesmo envia para a placa direto.

MensagemEnviado: 28 Nov 2010 18:45
por ivan
Pode 1 server enviar para 2 clients?

SIM!

Como?

Conforme o Proex mencionou.

Precisa necessáriamente de uma 2a instancia?

NÃO!

Como?

THREAD!

OBS:Um bom livro de socket resolve o problema.

MensagemEnviado: 28 Nov 2010 19:35
por Rodrigo_P_A
Claro que pode, mas eu não entendo pra que?

se for para enviar dados para vários clientes "ao mesmo tempo" via TCP sem nova instância, até fica esquisito, pois cada um pode demorar para receber a informação e o tratamento disso vai ficar muito mais complicado.

MensagemEnviado: 29 Nov 2010 06:45
por andre_luis
Ivan,


Seria fácil se fosse eu que tivesse feito o Server, que é uma "caixa-preta"; não tenho acesso.
Além disso, o que se costuma fazer, é criar threads para cada socket, e no meu caso, estou falando de portas fixas.

De qualquer modo, já ficou claro pelos testes anteriores, que não funciona.
Vou ter de pensar em outra solução.

Obrigado a todos.

+++

MensagemEnviado: 29 Nov 2010 15:22
por ivan
andre_teprom escreveu:... e no meu caso, estou falando de portas fixas.


É a mesma solução.

andre_teprom escreveu:... o Server, que é uma "caixa-preta"...


Creio q vc precisa de um servidor de aplicação. Se o seu SO for Ruidows dá uma olhada no MTS - Microsoft Transaction Server.
http://technet.microsoft.com/en-us/libr ... 23270.aspx