Chat usando sockets

11 respostas
P

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?

11 Respostas

analyser

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

Abraços

analyser

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

Abraços

F

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

GiancarloBraga

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.

P

Rodou, vlww :D
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:
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) {} 
  }
}
Marky.Vasconcelos
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]

Marky.Vasconcelos

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

P

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]);

Marky.Vasconcelos

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

P

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?

P

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

agora so tenho que implementar o metodo de desconectar…

vlw

Criado 21 de agosto de 2007
Ultima resposta 29 de ago. de 2007
Respostas 11
Participantes 5