Kryonet: сервер / клиент - невозможно подключиться
Я пытаюсь запустить серверный класс на моем компьютере с помощью Kryonet, чтобы мое устройство Android могло подключиться к серверу. Так как мой телефон не смог подключиться, я написал клиентский класс для ПК и протестировал отправку сообщения с моего ноутбука на мой компьютер.
Но я получаю это исключение на клиенте при попытке подключения:
Creating new Client...
Staring Client...
Trying to connect to 192.168.2.54
java.io.IOException: Unable to connect to: /192.168.2.54:34567
at com.esotericsoftware.kryonet.TcpConnection.connect(TcpConnection.java:92)
at com.esotericsoftware.kryonet.Client.connect(Client.java:149)
at com.esotericsoftware.kryonet.Client.connect(Client.java:110)
at com.cookedapps.robotredemption.server.ClientTest.run(ClientTest.java:40)
at com.cookedapps.robotredemption.server.ClientTest.<init>(ClientTest.java:22)
at com.cookedapps.robotredemption.server.ClientTest.main(ClientTest.java:47)
Caused by: java.net.SocketTimeoutException
at sun.nio.ch.SocketAdaptor.connect(Unknown Source)
at com.esotericsoftware.kryonet.TcpConnection.connect(TcpConnection.java:77)
... 5 more
Я обнаружил, что мой брандмауэр блокирует соединение, поэтому я включил свой брандмауэр Bitdefender и смог отправить ping через cmd на мой сервер. Тем не менее я не могу подключиться. Я также пробовал разные порты и разные направления (установил сервер на ноутбук и т. Д.)
Мой сервер клас:
package com.cookedapps.robotredemption.server;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import com.cookedapps.robotredemption.util.PacketString;
import com.esotericsoftware.kryonet.Client;
import com.esotericsoftware.kryonet.Connection;
import com.esotericsoftware.kryonet.Listener;
import com.esotericsoftware.kryonet.Server;
public class MainServer {
Server server;
public int udpPort, tcpPort;
public MainServer(int udp, int tcp) {
udpPort = udp;
tcpPort = tcp;
run();
}
public void run() {
InetAddress ip = null;
try {
ip = InetAddress.getLocalHost ();
} catch (UnknownHostException e1){
e1.printStackTrace();
}
System.out.println("Creating Server... Server IP: "+ip);
server = new Server();
server.getKryo().register(PacketString.class);
System.out.println("Starting Server...");
server.start();
try {
server.bind(tcpPort, udpPort);
} catch (IOException e) {
e.printStackTrace();
}
server.addListener(new Listener(){
public void connected(Connection c){
System.out.println("Received a connection from "+c.getRemoteAddressTCP().getHostString());
PacketString packetMessage = new PacketString();
packetMessage.message = "Hello friend!";
c.sendTCP(packetMessage);
}
public void received(Connection c, Object p){
System.out.println("New Message received! "+p);
}
public void disconnected(Connection c){
System.out.println("A client disconnected!");
}
});
}
public static void main(String[] args) {
new MainServer(34567, 34568);
}
}
Мой клиентский класс:
package com.cookedapps.robotredemption.server;
import java.io.IOException;
import com.cookedapps.robotredemption.util.PacketString;
import com.esotericsoftware.kryonet.Client;
import com.esotericsoftware.kryonet.Connection;
import com.esotericsoftware.kryonet.Listener;
public class ClientTest {
private String serverIp;
private int tcpPort, udpPort, TIMEOUT;
public Client client;
public ClientTest(String serverIP, int tcpPort, int udpPort){
this.serverIp = serverIP;
this.tcpPort = tcpPort;
this.udpPort = udpPort;
TIMEOUT = 5000;
run();
}
public void run(){
System.out.println("Creating new Client...");
client = new Client();
client.getKryo().register(PacketString.class);
System.out.println("Staring Client...");
client.start();
client.addListener(new Listener(){
public void received(Connection connection, Object object){
System.out.println("New Message received: "+object);
}
});
try {
System.out.println("Trying to connect to "+serverIp);
client.connect(TIMEOUT, serverIp, tcpPort, udpPort);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
new ClientTest("192.168.2.54", 34567, 34568);
}
}
Поскольку никакие подсказки от Интернета не работали для меня, я решил разместить свой здесь. Спасибо за любые советы!