Conectando dois soquetes

5

Gostaria de saber se é possível ligar dois sockets recebidos tcp .
Por exemplo:

Client A  ----->  Server  <----- Client B

O servidor envia a mágica para os dois clientes e eles se conectam uns aos outros ignorando o servidor

                  Server
Client A  ----------><---------- Client B

ATUALIZAÇÃO:

A ideia é quando esses clientes não podem se vincular a portas para ouvir ainda poder criar conexão entre si com a ajuda do servidor.

Por exemplo, o Cliente A e o Cliente B possuem soquetes tcp com o servidor. O usuário A decide bater papo com o usuário B e cria uma nova conexão tcp com o servidor com a solicitação de conectá-lo ao usuário B. O servidor envia essa solicitação ao cliente B e também abre uma nova conexão tcp com o servidor para esse bate-papo linha.

Agora, quando o servidor tem as duas conexões de bate-papo de A e B, ele faz a ponte e pode trabalhar sem o servidor e, como resultado, o servidor não precisará processar todas as mensagens e arquivos compartilhados pelos dois usuários. Essa é a ideia /

    
por Itay Grudev 18.09.2012 / 17:40

1 resposta

1

Não está claro se ambos os clientes estão na mesma rede. Eu suponho que eles não são, caso contrário, esta pergunta não teria surgido.

Do pressuposto acima, segue-se que um cliente não pode endereçar diretamente um pacote TCP / IP ao outro cliente, então isso absolutamente requer uma ponte. Então, de uma maneira geral, a resposta é que isso é impossível - uma ponte sempre será necessária como intermediário.

No entanto, se os dois clientes estiverem conectados à Internet por meio de um roteador, eles podem usar a Internet como uma ponte, por exemplo usando o software pwnat . Para mais detalhes, veja esta resposta .

    
por 21.09.2012 / 11:03