Compare commits
No commits in common. "44d11f18d691acfadcaf03818d419dad2ebcdb3c" and "3f63e2262fd69ecc6e8d252ce875c7813b15dca3" have entirely different histories.
44d11f18d6
...
3f63e2262f
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,5 +1,3 @@
|
|||||||
data.db
|
|
||||||
|
|
||||||
.gradle
|
.gradle
|
||||||
build/
|
build/
|
||||||
!gradle/wrapper/gradle-wrapper.jar
|
!gradle/wrapper/gradle-wrapper.jar
|
||||||
@ -41,4 +39,4 @@ bin/
|
|||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
### Mac OS ###
|
### Mac OS ###
|
||||||
.DS_Store
|
.DS_Store
|
@ -7,43 +7,9 @@ import java.util.Scanner;
|
|||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
if (args.length == 0) {
|
Scanner scanner = new Scanner(System.in);
|
||||||
Scanner scanner = new Scanner(System.in);
|
chooseMode(scanner);
|
||||||
chooseMode(scanner);
|
scanner.close();
|
||||||
scanner.close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
switch (args[0]) {
|
|
||||||
case "help" -> {
|
|
||||||
System.out.println("crab help - print this message.");
|
|
||||||
System.out.println("crab client <ip> <port> [nick] - connect to a server.");
|
|
||||||
System.out.println("crab server <port> - start a server.");
|
|
||||||
}
|
|
||||||
case "client" -> {
|
|
||||||
CrabClient client;
|
|
||||||
try {
|
|
||||||
client = new CrabClient(args[1], Integer.parseInt(args[2]), args.length == 4 ? args[3] : null);
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
System.err.println("Port is not a number.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
client.run();
|
|
||||||
}
|
|
||||||
case "server" -> {
|
|
||||||
CrabServer server;
|
|
||||||
try {
|
|
||||||
server = new CrabServer(Integer.parseInt(args[1]));
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
System.err.println("Port is not a number.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
server.run();
|
|
||||||
}
|
|
||||||
default -> {
|
|
||||||
System.err.println("Unknown argument");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void chooseMode(Scanner scanner) {
|
private static void chooseMode(Scanner scanner) {
|
||||||
@ -62,4 +28,4 @@ public class Main {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -17,26 +17,15 @@ public class CrabClient implements Crab {
|
|||||||
private PrintWriter out;
|
private PrintWriter out;
|
||||||
private BufferedReader in;
|
private BufferedReader in;
|
||||||
private int lastBufferLength = 0;
|
private int lastBufferLength = 0;
|
||||||
private String nickname;
|
|
||||||
|
|
||||||
public CrabClient() {
|
public CrabClient() {
|
||||||
this.nickname = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
public CrabClient(String serverAddress, int port, String nickname) {
|
|
||||||
this.serverAddress = serverAddress;
|
|
||||||
this.port = port;
|
|
||||||
if (nickname != null)
|
|
||||||
this.nickname = "<" + nickname + "> ";
|
|
||||||
else
|
|
||||||
this.nickname = "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
if (this.serverAddress == null)
|
setup();
|
||||||
setup();
|
|
||||||
connect();
|
connect();
|
||||||
communicate();
|
communicate();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
@ -65,11 +54,6 @@ public class CrabClient implements Crab {
|
|||||||
System.out.println("Enter a correct port number: ");
|
System.out.println("Enter a correct port number: ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.print("Enter your nickname (leave empty for no nickname): ");
|
|
||||||
nickname = scanner.nextLine();
|
|
||||||
if (nickname != "")
|
|
||||||
nickname = "<" + nickname + "> ";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void connect() throws IOException {
|
private void connect() throws IOException {
|
||||||
@ -93,7 +77,7 @@ public class CrabClient implements Crab {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!message.isEmpty()) sendPacket(MESSAGE, this.nickname + message);
|
if (!message.isEmpty()) sendPacket(MESSAGE, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,4 +120,4 @@ public class CrabClient implements Crab {
|
|||||||
sendPacket(LOGS_SIZE, "");
|
sendPacket(LOGS_SIZE, "");
|
||||||
sendPacket(LOGS, "");
|
sendPacket(LOGS, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -18,16 +18,10 @@ public class CrabServer implements Crab {
|
|||||||
this.db = new Database("data.db");
|
this.db = new Database("data.db");
|
||||||
}
|
}
|
||||||
|
|
||||||
public CrabServer(int port) {
|
|
||||||
this.db = new Database("data.db");
|
|
||||||
this.port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
if (this.port == 0)
|
setup();
|
||||||
setup();
|
|
||||||
listen();
|
listen();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
if (!isStopped) System.err.println("Error starting server: " + e.getMessage());
|
if (!isStopped) System.err.println("Error starting server: " + e.getMessage());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user