Jogo em rede - Conexão com servidor

2 respostas
L

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

2 Respostas

P

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

L

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!

Criado 18 de dezembro de 2015
Ultima resposta 18 de dez. de 2015
Respostas 2
Participantes 2