:DSalve!! Estou com uma dúvida sobre sockets, podem me ajudar? Bem, sabemos que para estabelecer conexão entre dois computadores usando socket é preciso que um faça o lado cliente e outro faça o lado servidor. Testei e estou usando um no meu sistema algumas classes socket(cliente e servidor) e funciona bem em uma rede. Mas como faço para rodar na internet?
Se um cliente decide acessar um recurso de um servidor ( por exemplo: o site www.servidorcomrecursosocket.com.br) na internet beleza, funciona bem.
Imaginem agora que, esse servidor deseja, depois de fechada a conexão, enviar uma mensagem para o cliente.
:? Mas pra que alguem em sã consciencia usaria isso? Já vou explicar.
Tenho um sistema em que, por cima, um usuário se loga no site da empresa e tem acesso a planta da sua casa. Então, ao clicar em alguma lampada, ventilador, chuveiro ou qualquer coisa que sua imaginação permitir, é enviada uma mensagem via socket ao computador do cliente(essa string será usada para controlar os componentes eletrônicos).
Como eu disse, em uma rede interna funciona bem.
-
Como acho o ip da casa do fulano?
R: eu estou usando um robozinho na casa dele que monitora o IP e manda ( via socket) pro meu banco no servidor. -
De posse do IP, como mandar determinada string pro cliente?
R: via socket. Contudo, quando eu “pego” o ip no computador do cliente que contém a placa que controla os disositivos eletrônicos, ele pega o ip da rede interna. Isso não serve de nada na internet. Já sei como pegar o IP da rede externa ( um método no serversocket faz isso). -
De posse do IP da rede externa, como mandar determinada string pro cliente?
R: ainda não consegui responder a essa pergunta. Tendo o IP real do cliente, ou seja aquele com que ele se conecta na net, tenho o IP do router e não do computador. Enviar a string pro router não adianta se não tiver a máscara de sub-rede que especifique qual computador deve receber o pacote.Infelizmente não posso ( ainda) testar o sistema na internet. Como faço para especificar um computador dentro da rede para receber minha string? E se eu não especificar, ele descarta o pacote(acho mais provável) ou envia para todos os pcs?
Obrigado pela ajuda !!

