Problemas no Client (usando Socket) help-me!

4 respostas
J

Galera !
Como eu faço para aproveitar uma conexão Socket enviando para vários Clientes ?
eu estou fazendo um estilo MSN:

por ex:
eu tenho uma lista de pessoas.
Fulano
Ciclano

eu tenho 1 só conexão com o ServerSocket. (no momento de logar)

estou querendo enviar para quem eu quiser utilizando o
socket.getInputStream() , socket.getOuputStream() já existentes

alguém sabe como fazer isso ?

ou vou ter que ficar abrindo Conexão toda vez que abro uma Janela para falar com aguém ?

a funcionalidade é a mesma desses comuns encontrados na net

Conto com a Ajuda de Vc’s!

Abrs

4 Respostas

C

Opa,
Aconselho voce que faça da seguinte maneira, cada cliente que se conectar com o servidor vai fechar uma unica conexao e irá utiliza-la até no momento em que resolver sair do programa, assim fica mais facil de controlar os Listeners necessarios para envio das mensagens e do roteamento que o servidor vai ter que fazer entre origem->servidor->destino.

J

Mas é exatamente o que estou fazendo, Carlos

assim:

o Client sou eu !

e eu tenho uma lista de pessoas ( estilo msn ), qdo eu for mandar uma mensagem pra primeira pessoa, a mensagem vai até o servidor e aponta pra essa pessoa ( até  tudo bem )

depois quando abro outra janela ( deixando a primeira aberta )

naõ consigo mandar , daí ferra tudo pois também naõ consigo receber.

isso pq uso  1 SOCKET .

não existe uma maneira sei  um BroadCast, Multicast pra eu utilizar minha conexão sempre ?

eu só estou fazendo normal para enviar.

BufferedReader entrada = new BufferedReader(new InputStreamReader(myConnection.getConexao().getInputStream()));

onde myConnection.getConexao() = Class Socket

(imagine em outra janela eu fazendo esse processo o mesmo )
C

Mas o teu servidor está multi-thread para gerenciar cada conexao:?

J

sim tem uma Thread para assim que chegar um Client, já libera na espera de um próximo !

mas esse problema tá inbaçado viu !

vc tem alguma idéia de que recurso posso usar ? algo do tipo ?

Criado 20 de setembro de 2007
Ultima resposta 20 de set. de 2007
Respostas 4
Participantes 2