Duvida Socket[RESOLVIDO]  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
matheus.nani
Debugger

Membro desde: 03/05/2011 11:15:55
Mensagens: 65
Localização: Jundiai - SP
Offline

Bom dia galera...

Andei dando uma olha aqui no Forum e não achei nada parecido então resolvi criar este topico..

Estou criando um socket para fazer a conexão com um rastreador.. esse socket sera um aplicativo Desk..(Swing) que ficara rodando 24x7 em um servidor, e fara a conexão com o rastreador.. e recebera as informações que o mesmo(rastreador) me enviar.

a duvida é.. em todos os exemplos que vi TODOS. sempre tem a classe (servidor) que é aque estou criando e a classe (client) essa eu não vou criar porque o rastreador sera meu cliente.. ai está o como ? como posso informar ao meu servidor que o client X enviou X informação..
sem criar uma classe Cliente..

um exemplo...

meu socket irá abrir uma conexão na porta (7777)
e ficara escutando para ver se tem algumm client para fazer a comunicação.
o rastreador(client) está configurado em um IP qualquer e porta 192.66.191.96 : 7777

mais para mim receber informações do cliente tenho que aceitar um cliente antes..
está variavel client tbm tera que ser instanciada na classe cliente

no meu caso não terei a classe cliente para informar ao servidor de Qual cliente ele deve receber infiormações como poderia fazer isto ? alguma ideia?



This message was edited 1 time. Last update was at 07/02/2012 08:02:40


"É melhor lançar-se à luta em busca do triunfo, mesmo expondo-se ao insucesso, do que ficar na fila dos pobres de espírito, que nem gozam muito nem sofrem muito, por viverem nessa penumbra cinzenta de não conhecer vitória e nem derrota" Franklin D. Roosevelt
oyama
Virtual Machine Man

Membro desde: 19/04/2005 10:11:09
Mensagens: 572
Offline

Deixa eu ver se entendi direito: o seu rastreador não tem a capacidade de se conectar via socket a um servidor? Então ele não pode agir como um cliente. O que o seu rastreador tem? Um endereço IP? Uma porta (socket) para enviar ao informações? Se for isto, então tem que fazer o contrário: o seu programa tem que conectar no rastreador. Ai ele passaria a ser um cliente do rastreador. Se for assim, o mais correto seria pensar que o seu programa é que vai coletar as informações no rastreador, e não o rastreador que envia a s informações para o seu programa. Teria que ser um esquema de polling.
matheus.nani
Debugger

Membro desde: 03/05/2011 11:15:55
Mensagens: 65
Localização: Jundiai - SP
Offline

deixa eu explicar sendo mais objetivo.. desculpe..

O meu rastreador tem capacidade de se conectar com um socket.. ele pode ser configurado posso informar qual IP e qual porta ele vai utilizar..

assim..


mais ou menos assim...


ali na linha 02 tenho que colocar o RASTREADOR.getInputStream(); nos programas "convencionais" eu sei qual é meu cliente pq eu crio ele já na minha duvida eu não vou criar e sim receber um cliente qualquer porque não sei qual cliente é que está se conectando ao servidor. entendeu ?

This message was edited 1 time. Last update was at 06/02/2012 09:05:17


"É melhor lançar-se à luta em busca do triunfo, mesmo expondo-se ao insucesso, do que ficar na fila dos pobres de espírito, que nem gozam muito nem sofrem muito, por viverem nessa penumbra cinzenta de não conhecer vitória e nem derrota" Franklin D. Roosevelt
oyama
Virtual Machine Man

Membro desde: 19/04/2005 10:11:09
Mensagens: 572
Offline

Não estou entendendo nada. Está bem confuso para mim. Não programei com socket, mas pelo o que eu vi é só criar criar um socket no servidor e ficar "ouvindo" a porta:



Configura o rastreador para conectar no IP do servidor na porta 7777. Não é isto?

Agora se o seu cenário é que você tem vários rastreadores e precisa saber qual rastreador se conectou, bem ai tem que ver se as informações que o rastreador envia não contém esta informação. Ou poderia pegar a informação do IP do rastreador e mapear por isto.
matheus.nani
Debugger

Membro desde: 03/05/2011 11:15:55
Mensagens: 65
Localização: Jundiai - SP
Offline

Correto você abri a conexão assim:



porem para você receber as informações do seu cliente você fez isso:


e para você conseguir receber as informalções de (s) que é seu cliente..
você teve que criar uma classe cliente e fazer isso.


no meu caso eu não sei quem é meu cliente.. porque o meu cliente é o rastreador e eu não sei qual a variavel ou objeto vou utilizar para fazer isso




"É melhor lançar-se à luta em busca do triunfo, mesmo expondo-se ao insucesso, do que ficar na fila dos pobres de espírito, que nem gozam muito nem sofrem muito, por viverem nessa penumbra cinzenta de não conhecer vitória e nem derrota" Franklin D. Roosevelt
oyama
Virtual Machine Man

Membro desde: 19/04/2005 10:11:09
Mensagens: 572
Offline

Agora entendi a sua dúvida. A classe Cliente é para rodar na máquina cliente. No servidor não vai existir uma classe Cliente. Na máquina do servidor só precisa criar uma classe Servidor e ficar ouvindo a porta e "pegando" os dados enviados. O código que eu passei acima deveria ser suficiente.

matheus.nani
Debugger

Membro desde: 03/05/2011 11:15:55
Mensagens: 65
Localização: Jundiai - SP
Offline

Então.. não seria muito suficiente não.. porque o rastreador criaria um objeto com todas as informações e eu teria que ter um ponto em "comum" pra que os dois possam conversar. o rastreador é programado em C como faço pra ligar uma plicação java com C ? só com webServices.

alguem ai saberia alguma alternativa ?

ATT.

"É melhor lançar-se à luta em busca do triunfo, mesmo expondo-se ao insucesso, do que ficar na fila dos pobres de espírito, que nem gozam muito nem sofrem muito, por viverem nessa penumbra cinzenta de não conhecer vitória e nem derrota" Franklin D. Roosevelt
oyama
Virtual Machine Man

Membro desde: 19/04/2005 10:11:09
Mensagens: 572
Offline

Poderia implementar em CORBA, mas não sei se vai ser "over" demais para o seu caso. Tem que ver o quanto é complicado as mensagens trocadas e que tipo de tratamentos são necessários em casos de erros e se as mensagens são todas sincronas. Web Services dependendo do caso é "custoso" demais.
soaresinfo
JavaEvangelist
[Avatar]

Membro desde: 27/07/2003 15:40:13
Mensagens: 373
Localização: Uberlândia/MG
Offline

Pense nesse problema como um aplicativo de chat, como você identifica cada pessoa no chat? Não é pelo usuário? Quando o rastreador se conectar, ele precisa enviar um identificador, aí você atribui essa identificação ao IP para seu aplicativo gerenciar o que for necessário.

Anuncie aqui!
matheus.nani
Debugger

Membro desde: 03/05/2011 11:15:55
Mensagens: 65
Localização: Jundiai - SP
Offline

Resolvi aqui... já consegui me conectar com o rastreador..e estou recebendo suas mensagens.. VLw pela ajuda.. utilizei sockets mesmo... funcionou !

"É melhor lançar-se à luta em busca do triunfo, mesmo expondo-se ao insucesso, do que ficar na fila dos pobres de espírito, que nem gozam muito nem sofrem muito, por viverem nessa penumbra cinzenta de não conhecer vitória e nem derrota" Franklin D. Roosevelt
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team