Onde está meu erro? - Chat

2 respostas
R

Esse programa tem a finalidade de abrir um chat entre dois usuários, em máquinas da rede.

Como sou muito newbie em Java, não indentifiquei o problema.

import java.util.Scanner;
import java.net.Socket;
import java.io.*;
import java.net.*;

class Dcon{
 static String ip = new String();
 static String porta = new String();
 static String nick = new String();
  Dcon(){
  Scanner sc = new Scanner(System.in);
  System.out.println("Digite o IP a conectar o chat:");
  ip=sc.next();
  System.out.println("Digite a porta a ser usada para o chat:");
  porta=sc.next();
  System.out.println("Digite seu apelido:");
  nick=sc.next();
  System.out.println("IP: "+ip+" Porta: "+porta+" Apelido: "+ nick);
  }
}


class manda implements Runnable{
  Socket s1 = new Socket(Dcon.ip, (Dcon.porta).toInteger, 
true);
  Scanner sc = new Scanner(System.in);
DataOutputStream mandas=new DataOutputStream(s1.getOutputStream());
  run(){
while(s1.isConnected()){
    mandas.writeUTF(sc.next());
}
  }
}
class recebe implements Runnable{ 
  Socket s2 = new Socket(Dcon.ip, (Dcon.porta).toInteger, 
true);
  DataInputStream recebes=new DataInputStream(s2.getInputStream());
  run(){
while(s2.isConnected()){
    System.out.println(recebes.readUTF());
}
  }
}
public class Cmain{
 public static void main(String args[]){
  Dcon dcon = new Dcon();
  manda.run();
  recebe.run();
  }
}

O que eu fiz de errado com o método run()?
Erro:

ricardo@ricardo:~$ javac Cmain.java
Cmain.java:28: invalid method declaration; return type required
  run(){
  ^
Cmain.java:38: invalid method declaration; return type required
  run(){
  ^
2 errors

2 Respostas

J

Não tenho certeza, não testei, mas tente assim…

public class Cmain{
 public static void main(String args[]){
  Dcon dcon = new Dcon();
  manda mandar = new manda();
  recebe receber = new recebe();
  mandar.run();
  receber.run();
  }

Testa ae…

Abraço…

R

“jason_voorhees”:
Não tenho certeza, não testei, mas tente assim…

public class Cmain{
 public static void main(String args[]){
  Dcon dcon = new Dcon();
  manda mandar = new manda();
  recebe receber = new recebe();
  mandar.run();
  receber.run();
  }

Testa ae…

Abraço…

Obrigado, faltou colocar o tipo de retorno, e o método como public. =D
Não se como não me toquei de instanciar a classe.

Certo, arrumei tudo, mas ele pede pra declarar a exeção java.io.IOException;

Vou tentar fazer, qualquer coisa, edito meu post.

Obrigado mesmo.

Edit:

class manda implements Runnable{
manda(){
  try {
Socket s1 = new Socket(Dcon.ip, Integer.parseInt(Dcon.porta), 
true);
  }catch (IOException e) { System.out.println("Erro ao criar conexao."); }  
  Scanner sc = new Scanner(System.in);
  try {
DataOutputStream mandas=new DataOutputStream(s1.getOutputStream());
  }catch (IOException e) { System.out.println("Erro ao conectar."); }
} 
  public void run(){
while(s1.isConnected()){
  try {
    mandas.writeUTF(sc.next());
  }catch (IOException e) { System.out.println("Erro ao mandar mensagem."); } 
}
  }
}

Como eu deixo os métodos do construtor “manda”, dentro do escopo do método run()? Pois assim o compilador acusa de não achar as variáveis.

Criado 28 de setembro de 2007
Ultima resposta 28 de set. de 2007
Respostas 2
Participantes 2