From b4274f8c6a3181f27e412f767f52d97b16e1ecca Mon Sep 17 00:00:00 2001 From: eetnaviation Date: Fri, 27 Jun 2025 12:43:48 +0300 Subject: [PATCH] Initial --- .gitignore | 41 ++++++++++++++++++ pom.xml | 32 ++++++++++++++ src/main/java/BcowServer.java | 80 +++++++++++++++++++++++++++++++++++ 3 files changed, 153 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/BcowServer.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..61849af --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +Client*/ + +### IntelliJ IDEA ### +.idea/ +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..0723adf --- /dev/null +++ b/pom.xml @@ -0,0 +1,32 @@ + + 4.0.0 + + eu.velend + bcow-server + 1.0-SNAPSHOT + + + 11 + 11 + + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + + diff --git a/src/main/java/BcowServer.java b/src/main/java/BcowServer.java new file mode 100644 index 0000000..c8f67a8 --- /dev/null +++ b/src/main/java/BcowServer.java @@ -0,0 +1,80 @@ +import java.io.*; +import java.net.ServerSocket; +import java.net.Socket; +import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class BcowServer { + + private static final int PORT = 9999; + + public static void main(String[] args) { + try (ServerSocket serverSocket = new ServerSocket(PORT)) { + System.out.println("Server is listening on port " + PORT); + + while (true) { + new ClientHandler(serverSocket.accept()).start(); + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + private static class ClientHandler extends Thread { + private Socket socket; + + public ClientHandler(Socket socket) { + this.socket = socket; + } + + public void run() { + try (InputStream input = socket.getInputStream()) { + BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); + + String data = reader.readLine(); + if (data != null) { + processPacketData(data); + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + private void processPacketData(String data) { + try { + String[] parts = data.split("\\|"); + + if (parts.length >= 4) { + String id = parts[0].split(":")[1].trim(); + String name = parts[1].split(":")[1].trim(); + String timezone = parts[2].split(":")[1].trim(); + String packetData = parts[3].split(":")[1].trim(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String date = sdf.format(new Date()); + SimpleDateFormat timeFormat = new SimpleDateFormat("HH-mm-ss"); + String time = timeFormat.format(new Date()); + + File dir = new File(name + "_" + id + "/" + date); + if (!dir.exists()) { + dir.mkdirs(); + } + + try (BufferedWriter writer = new BufferedWriter(new FileWriter(new File(dir, time + ".txt")))) { + writer.write(packetData); + } catch (IOException e) { + e.printStackTrace(); + } + + // Log the received packet data for verification + System.out.println("Received ID:" + id + " Name:" + name + " Timezone:" + timezone + " Data:" + packetData); + } else { + System.err.println("Malformed data received: " + data); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } +}