Pessoal é o seguinte. Não sou usuário tão aançado em Java ainda estou em constante estudo mas vamos lá ;p
Estou começando a criae e entender um chat cliente/servidor e tenho já de cara uma dúvida que não deve ser tão fácil assim.
Estou me baseando em um exemplo simples que peguei na Web. Como eu faria para esse exemplo abaixo trabalhar com conexões simultâneas alguem saberia me responder ? Me indicar algum tutorial ou página enfim ou sabe de algum codigo free que eu possa estudar. Qualquer ajuda com certeza é sempre bem vinda. Pretendo a partir do código abaixo entender o trabalho das Threads e ai desenvolver algo bem legal
Segue CLIENTE.JAVA
#################################################
import java.io.IOException ;
import java.io.PrintStream ;
import java.net.Socket ;
import javax.swing.* ;
public class Cliente
{
public static void main ( String[] args )
{
//Declaro o socket cliente
Socket s = null ;
//Declaro a Stream de saida de dados
PrintStream ps = null ;
try
{
//Cria o socket com o recurso desejado na porta especificada
s = new Socket ( "127.0.0.1" , 7000 ) ;
//Cria a Stream de saida de dados
ps = new PrintStream ( s.getOutputStream () ) ;
//Imprime uma linha para a stream de saída de dados
//ps.println ( "Estou enviando dados para o servidor" ) ;
ps.println ( JOptionPane.showInputDialog("Dados") ) ;
//Trata possíveis exceções
}
catch ( IOException e )
{
System.out.println (
"Algum problema ocorreu ao criar ou enviar dados pelo socket." ) ;
}
finally
{
try
{
//Encerra o socket cliente
s.close () ;
}
catch ( IOException e )
{}
}
}
}
###############################################
SEGUE SERVIDOR.JAVA
import java.io.BufferedReader ;
import java.io.IOException ;
import java.io.InputStreamReader ;
import java.net.ServerSocket ;
import java.net.Socket ;
public class Servidor
{
public static void main ( String[] args )
{
//Declaro o ServerSocket
ServerSocket serv = null ;
//Declaro o Socket de comunicação
Socket s = null ;
//Declaro o leitor para a entrada de dados
BufferedReader entrada = null ;
try
{
//Cria o ServerSocket na porta 7000 se estiver disponível
serv = new ServerSocket ( 7000 ) ;
//Aguarda uma conexão na porta especificada e cria retorna o socket que irá comunicar com o cliente
System.out.println("Estou aguardando uma conexão ...");
s = serv.accept () ;
//Cria um BufferedReader para o canal da stream de entrada de dados do socket s
entrada = new BufferedReader ( new InputStreamReader ( s.
getInputStream () ) ) ;
//Aguarda por algum dado e imprime a linha recebida quando recebe
System.out.println ( entrada.readLine () ) ;
//trata possíveis excessões de input/output. Note que as excessões são as mesmas utilizadas para as classes de java.io
}
catch ( IOException e )
{
//Imprime uma notificação na saída padrão caso haja algo errado.
System.out.println (
"Algum problema ocorreu para criar ou receber o socket." ) ;
}
finally
{
try
{
//Encerro o socket de comunicação
s.close () ;
//Encerro o ServerSocket
serv.close () ;
}
catch ( IOException e )
{
}
}
}
}
##############################################
Abraço
Junior