Chat usando sockets

Pessoal tenho que fazer um chat usando socket e varias threads, o codigo do servidor eu peguei mas nao estou conseugindo rodar.

class Servidor {
  public static void main(String[] args) {
    int port= Integer.parseInt(args[0]);
        
    try {
      ServerSocket server= new ServerSocket(port);
    } 
    catch (IOException ioe) 
    {  
        System.err.println("Couldn't run server"); 
        
        return; 
    }
    while(true) {
        try {
            [b]Socket connection = server.accept();[/b]
            ConnectionHandler handler= new ConnectionHandler(connection);
            new Thread(handler).start();
        } catch (IOException ioe) {}
     }   
  }
}

na parte em negrito mostra a seguinte mensagem: cannot find symbol
o que é isso?

Verifique se vc esta colocando o servidor que ira se comunicar se for na mesma maquina localhost ou 127.0.0.1

Abraços

Tem um artigo aqui no GUJ muito bom sobre sockets olhe ele

Abraços

Ae blz,
entaum em relação ao erro em negrido deve está dando esse erro, pois vc declarou a variavel de referencia ServerSocket dentro do bloco try, tendo com isso um escopo menor, declare ele fora do bloco try e instacie ele dentro do bloco.
Falow

Amigo,
Tente este link que o analyser citou:
http://www.guj.com.br/java.tutorial.artigo.126.1.guj

Poste se conseguir e caso consiga seria bom postar o código também. O assunto me interessa.

Abraço.

Rodou, vlww :smiley:
era o que o fabiojp falou mesmo, declarei fora do bloco try e deu certo.
agora fazendo o lado do client =S hehe… ja esta conectando… alguem tem alguma dica de como compilar 2 projetos ao mesmo tempo no netbeans? preciso rodar o servidor e o client…

GiancarloBraga o codigo so mudou a declaração da variavel server pra for do bloco try. e ai vai a classe do connectionhandler:

[code]
class ConnectionHandler implements Runnable {
private Socket connection;
public ConnectionHandler(Socket connection) {
this.connection = connection;
}
public void run() {
try {
//Cria um BufferedReader para o canal da stream de entrada de dados do socket
BufferedReader reader= new BufferedReader(new InputStreamReader
(connection.getInputStream()));

  PrintWriter writer= new PrintWriter(new OutputStreamWriter
        (connection.getOutputStream())); 
  String clientName= reader.readLine();
  writer.println("Hello " + clientName);
  writer.flush();
} catch (IOException ioe) {} 

}
}[/code]

só muda isso

try { 
ServerSocket server= new ServerSocket(port); 
}

pra isso

ServerSocket server = null;
try{
server = new ServerSocket(port);
}

Obs: Sempre que postar códigos coloqueos entre as Tags [code] e [/ code]

Ps: Não vi que você já tinha resolvido

sobre roda dois programas não sei no netbeans mais com o eclipse eu crio o jar de um(normalmente o cliente)
e rodo pelo dos com o java -jar
e o server dentro do eclipse

corrigi os posts Mark_Ameba…
Como funciona o comando? so entrar no cmd e digitar java -jar e o caminho do .java?

outra duvida que surgiu é … como eu passo os parametros pelo arg? que nem esta no cod? eu coloquei o valor da porta mais seria mais interessante usa o args… tem como me explicar?

public static void main(String[] args) { int port= Integer.parseInt(args[0]);

para passar argumentos aomain você na hora de executar

você pode adicionar Stirngs apos o nome da classe

agora o args[0] vale 10001

Sobre o java -jar é para executar .jar files

Não sei no netBeans mais você tem que exportar oprojeto do cliente para .jar e executar com

estou quebrando a cabeça para deixar o cliente sempre escutando o socket, sei que vou usar uma thread mais alguem tem alguma coisa mais especifica?

postando para agradecer a ajuda e falar que o chat já está funcionando…

agora so tenho que implementar o metodo de desconectar…

vlw