Bug fixing
This commit is contained in:
@@ -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);
|
||||
|
||||
|
@@ -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));
|
||||
}
|
||||
|
@@ -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;
|
||||
|
22
src/main/java/tests/Client.java
Normal file
22
src/main/java/tests/Client.java
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright (C) 2024 UnlegitDqrk - All Rights Reserved
|
||||
*
|
||||
* You are unauthorized to remove this copyright.
|
||||
* You have to give Credits to the Author in your project and link this GitHub site: https://github.com/UnlegitDqrk
|
||||
* See LICENSE-File if exists
|
||||
*/
|
||||
|
||||
package tests;
|
||||
|
||||
import me.finn.unlegitlibrary.event.EventManager;
|
||||
import me.finn.unlegitlibrary.network.system.client.NetworkClient;
|
||||
import me.finn.unlegitlibrary.network.system.packets.PacketHandler;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
public class Client {
|
||||
public static void main(String[] args) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
|
||||
new NetworkClient.ClientBuilder().setPacketHandler(new PacketHandler()).setEventManager(new EventManager()).
|
||||
setHost("localhost").setPort(25565).build().connect();
|
||||
}
|
||||
}
|
23
src/main/java/tests/Server.java
Normal file
23
src/main/java/tests/Server.java
Normal file
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (C) 2024 UnlegitDqrk - All Rights Reserved
|
||||
*
|
||||
* You are unauthorized to remove this copyright.
|
||||
* You have to give Credits to the Author in your project and link this GitHub site: https://github.com/UnlegitDqrk
|
||||
* See LICENSE-File if exists
|
||||
*/
|
||||
|
||||
package tests;
|
||||
|
||||
import me.finn.unlegitlibrary.event.EventManager;
|
||||
import me.finn.unlegitlibrary.network.system.client.NetworkClient;
|
||||
import me.finn.unlegitlibrary.network.system.packets.PacketHandler;
|
||||
import me.finn.unlegitlibrary.network.system.server.NetworkServer;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
public class Server {
|
||||
public static void main(String[] args) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
|
||||
new NetworkServer.ServerBuilder().setPacketHandler(new PacketHandler()).setEventManager(new EventManager()).
|
||||
setPort(25565).build().start();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user