Bug fixing

This commit is contained in:
2024-07-28 16:51:34 +02:00
parent 7c556bae5b
commit ada261b544
5 changed files with 72 additions and 18 deletions

View File

@@ -29,6 +29,7 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.InvocationTargetException;
import java.net.Socket;
import java.net.SocketException;
public class NetworkClient extends DefaultMethodsOverrider {
@@ -42,7 +43,7 @@ public class NetworkClient extends DefaultMethodsOverrider {
private int maxReconnectAttempts = 0;
private int reconnectDelay = 3000;
private int timeout = 3000;
private int timeout = 0;
public final NetworkClient build() throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
return new NetworkClient(host, port ,packetHandler, eventManager, logger, maxReconnectAttempts, reconnectDelay, timeout);
@@ -210,7 +211,7 @@ public class NetworkClient extends DefaultMethodsOverrider {
eventManager.executeEvent(new C_DisconnectedEvent(this));
if (logger == null) System.out.println("Disconnected from server");
else logger.info("Disconnected from server...");
else logger.info("Disconnected from serverß");
if (maxReconnectAttempts != 0) {
try {
@@ -230,8 +231,8 @@ public class NetworkClient extends DefaultMethodsOverrider {
public synchronized final boolean connect() {
if (isConnected()) return false;
if (logger == null) System.out.println("Trying to connect to " + host + ":" + port);
else logger.info("Trying to connect to " + host + ":" + port);
if (logger == null) System.out.println("Trying to connect to " + host + ":" + port + "...");
else logger.info("Trying to connect to " + host + ":" + port + "...");
try {
socket = new Socket(host, port);
@@ -301,7 +302,11 @@ public class NetworkClient extends DefaultMethodsOverrider {
eventManager.executeEvent(new C_PacketReceivedEvent(this, packet));
else eventManager.executeEvent(new C_PacketFailedReceivedEvent(this, packet, null));
} else eventManager.executeEvent(new C_UnknownObjectReceivedEvent(this, received));
} catch (SocketException ignored) {
disconnect(false);
return;
} catch (IOException | ClassNotFoundException exception) {
exception.printStackTrace();
if (logger == null) System.err.println("Receive thread failed: " + exception.getMessage());
else logger.exception("Receive thread failed", exception);

View File

@@ -24,6 +24,7 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.SocketException;
public class ConnectionHandler {
@@ -89,8 +90,8 @@ public class ConnectionHandler {
}
public synchronized boolean disconnect(boolean sendDisconnectPacket) {
if (server.getLogger() == null) System.out.println("Disconnecting from server...");
else server.getLogger().info("Disconnecting from server...");
if (server.getLogger() == null) System.out.println("Client ID '" + clientID + "' is disconnecting from server...");
else server.getLogger().info("Client ID '" + clientID + "' is disconnecting from server...");
receiveThread.interrupt();
@@ -102,8 +103,8 @@ public class ConnectionHandler {
inputStream.close();
socket.close();
} catch (IOException exception) {
if (server.getLogger() == null) System.err.println("Failed to close socket: " + exception.getMessage());
else server.getLogger().exception("Failed to close socket", exception);
if (server.getLogger() == null) System.err.println("Client ID '" + clientID + "' failed to close socket: " + exception.getMessage());
else server.getLogger().exception("Client ID '" + clientID + "' failed to close socket", exception);
}
}
@@ -115,8 +116,8 @@ public class ConnectionHandler {
clientID = -1;
server.getEventManager().executeEvent(new S_ConnectionHandlerDisconnectedEvent(this));
if (server.getLogger() == null) System.out.println("Disconnected from server");
else server.getLogger().info("Disconnected from server...");
if (server.getLogger() == null) System.out.println("Client ID '" + clientID + "' disconnected from server");
else server.getLogger().info("Client ID '" + clientID + "' disconnected from server");
return true;
}
@@ -135,9 +136,12 @@ public class ConnectionHandler {
server.getEventManager().executeEvent(new S_PacketReceivedEvent(this, packet));
else server.getEventManager().executeEvent(new S_PacketFailedReceivedEvent(this, packet, null));
} else server.getEventManager().executeEvent(new S_UnknownObjectReceivedEvent(this, received));
} catch (SocketException ignored) {
disconnect(false);
return;
} catch (IOException | ClassNotFoundException exception) {
if (server.getLogger() == null) System.err.println("Receive thread failed: " + exception.getMessage());
else server.getLogger().exception("Receive thread failed", exception);
if (server.getLogger() == null) System.err.println("Client ID '" + clientID + "' received thread failed: " + exception.getMessage());
else server.getLogger().exception("Client ID '" + clientID + "' received thread failed", exception);
server.getEventManager().executeEvent(new S_ReceiveThreadFailedEvent(this, exception));
}

View File

@@ -40,7 +40,7 @@ public class NetworkServer extends DefaultMethodsOverrider {
private int maxRestartAttempts = 0;
private int restartDelay = 3000;
private int timeout = 3000;
private int timeout = 0;
public final NetworkServer build() throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
return new NetworkServer(port, packetHandler, eventManager, logger, maxRestartAttempts, restartDelay, timeout);
@@ -156,8 +156,8 @@ public class NetworkServer extends DefaultMethodsOverrider {
public synchronized final boolean stop() {
if (!isRunning()) return false;
if (logger == null) System.out.println("Trying to stop server");
else logger.info("Trying to stop server");
if (logger == null) System.out.println("Trying to stop server...");
else logger.info("Trying to stop server...");
new ArrayList<>(connectionHandlers).forEach(connectionHandler -> connectionHandler.disconnect(true));
connectionHandlers.clear();
@@ -176,8 +176,8 @@ public class NetworkServer extends DefaultMethodsOverrider {
public synchronized final boolean start() {
if (isRunning()) return false;
if (logger == null) System.out.println("Trying to start on port " + port);
else logger.info("Trying to start on port " + port);
if (logger == null) System.out.println("Trying to start on port " + port + "...");
else logger.info("Trying to start on port " + port + "...");
try {
serverSocket = new ServerSocket(port);
@@ -186,7 +186,7 @@ public class NetworkServer extends DefaultMethodsOverrider {
incomingConnectionThread.start();
if (currentAttempts == 0) currentAttempts++;
if (logger == null) System.out.println("Started ad port" + port + " (Attempts: " + currentAttempts + ")");
if (logger == null) System.out.println("Started at port " + port + " (Attempts: " + currentAttempts + ")");
else logger.info("Started at port " + port + " (Attempts: " + currentAttempts + ")");
currentAttempts = 0;