Olá amigos, estou com uma pequena dúvida com socket’s. Estou estudando sobre eles e já consegui fazer um servidor com vários clientes. A dúvida agora é como posso fazer para que o servidor não envie a mensagem para todos e somente para um? Vou explicar como está meu código:
Meu servidor está com a thread implementada aguardando as conexões dos usuários. A cada usuário conectado, eu insiro ele em um hashtable, com isso, eu tenho um método que envia para todos as mensagens. Até aí perfeito, mas como dizer para que ele envie a mensagem somente para um? Agradeço a compreensão, eu fiz uma tentativa aqui mas não deu certo… aguardo dicas
Você pode coloca-los num map, ao invés de um set. Associando assim o IP (ou um id) ao socket em questão.
Esquece, você já faz isso. Eu li errado.
Se você tem um HashTable (o ideal é substitui-la por um HashMap, já que o HashTable e o Vector não são recomendados desde o Java 1.2), basta pegar apenas um dos socket dele e enviar. Então, qual é a dúvida? Seria só não fazer isso num for.
Agora, talvez seu problema seja pensar corretamente no protocolo. Se for isso, dá uma lida aqui:
http://www.guj.com.br/posts/list/136538.java#735860
Ou baixar esse chat de exemplo:
http://www.guj.com.br/posts/list/15/74218.java#506163
Boa tarde, valeu por responder cara. Estou olhando seu código, mas como não estou podendo rodar o programa para testar eu apenas implementei o sendTO e ainda não testei. Mas ao meu ver parece certo. Poderia olhar e ver o que está errado? Vou colocar o zip do programa. Obrigado mais uma vez.