Jogo em rede - Conexão com servidor

Olá galera tudo bem? Tenho uma pequena dúvida em relação a meu código, estou fazendo um jogo da velha em rede para a faculdade, mas não estou conseguindo fazer dar certo a parte de conexão com o servidor. Segue meus códigos para conferência

Quando eu tento me conectar ao servidor, que está assim:

int jogadorAtual = 0;
ServerSocket servidor = new ServerSocket();
servidor.bind(new InetSocketAddress(“localhost”, 1234));
System.out.println(“Servidor esperando”);
//static int conexoes = 0;

    while (conexoes <2) {
            Socket socket = servidor.accept();
            Thread t = new Thread(new GameTask(socket));
            t.start();               

A parte que define o servidor e a porta tão assim:

public class Player implements Runnable {

Rede rede = new Rede();
@Override
public void run() {
    Socket cliente = null;
    while (true) {
        try {
            cliente = new Socket(rede.getServidor(), rede.getPortaRemota());
        } catch (IOException ex) {
            Logger.getLogger(Player.class.getName()).log(Level.SEVERE, null, ex);
        }

E a rede está assim:

public class Rede {

private int portaLocal;
private int portaRemota = 1234;
private String servidor = "localhost";
public int getPortaLocal() {
    return portaLocal;
}
public int getPortaRemota() {
    return portaRemota;
}
public String getServidor() {
    return servidor;
}

}

Mas me são apresentados os erros:

GRAVE: null
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.(Socket.java:434)
at java.net.Socket.(Socket.java:211)
at GUI.Player.run(Player.java:28)
at java.lang.Thread.run(Thread.java:745)

inclusive na linha 28 da classe player:

cliente = new Socket(rede.getServidor(), rede.getPortaRemota());

Algum dos amigos consegue me dar uma luz? Confesso que estou apanhando bastante com essa parte.

Grande abraço a todos

Você está rodando o servidor antes, correto? Imprima qual é rede.getServidor() e rede.getPortaRemota() para ter certeza que está se conectando no lugar certo.

1 curtida

Opa! Bom dia Paulo.

Fiz um debug para você ver os valores das variáveis ali. Coloquei um pouco de parada logo após a abertura do Socket.

Ah, e sim, estou rodando os servidor antes sim :grin:

Obrigado!