This commit is contained in:
2025-06-27 12:43:48 +03:00
commit b4274f8c6a
3 changed files with 153 additions and 0 deletions

41
.gitignore vendored Normal file
View File

@ -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

32
pom.xml Normal file
View File

@ -0,0 +1,32 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>eu.velend</groupId>
<artifactId>bcow-server</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<!-- Server does not need pcap4j dependencies -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -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();
}
}
}
}