Implemented threading in Client
- GUI doesn't get blocked anymore - Implemented client side protocol based control - Client is now ready for player versus player
This commit is contained in:
@@ -10,6 +10,7 @@ import java.net.Socket;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Client {
|
||||
private Socket serverSocket;
|
||||
private DataOutputStream out;
|
||||
private DataInputStream in;
|
||||
private static Scanner scanner;
|
||||
@@ -21,7 +22,8 @@ public class Client {
|
||||
public Client(String ip, int port, String name) {
|
||||
try {
|
||||
scanner = new Scanner(System.in);
|
||||
Socket serverSocket = new Socket(ip, port);
|
||||
serverSocket = new Socket(ip, port);
|
||||
serverName = serverSocket.getRemoteSocketAddress().toString();
|
||||
out = new DataOutputStream(serverSocket.getOutputStream());
|
||||
in = new DataInputStream(serverSocket.getInputStream());
|
||||
clientLogger = new ClientLogger();
|
||||
@@ -41,7 +43,6 @@ public class Client {
|
||||
if (success) {
|
||||
out.writeUTF(name);
|
||||
out.flush();
|
||||
serverName = in.readUTF();
|
||||
clientLogger.printLog("You successfully connected to me", serverName, success, LogType.Log);
|
||||
} else {
|
||||
clientLogger.printLog("Connection failed try again", success, LogType.Log);
|
||||
@@ -63,10 +64,20 @@ public class Client {
|
||||
}
|
||||
}
|
||||
|
||||
public void sendConfirmation(){
|
||||
try {
|
||||
out.writeInt(200);
|
||||
out.flush();
|
||||
clientLogger.printLog("Sent verification code", serverName, true, LogType.Log);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public String getResponse() {
|
||||
try {
|
||||
String message = in.readUTF();
|
||||
clientLogger.printLog(String.format("Message recieved: %s", message), serverName, success, LogType.Log);
|
||||
clientLogger.printLog(String.format("Message recieved: %s", message), serverName, true, LogType.Log);
|
||||
return message;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
@@ -74,17 +85,29 @@ public class Client {
|
||||
return "";
|
||||
}
|
||||
|
||||
public boolean getBooleanResponse(String value){
|
||||
public boolean getBooleanResponse(String message) {
|
||||
try {
|
||||
boolean booleanResponse = in.readBoolean();
|
||||
clientLogger.printLog(String.format(value + ": %b", booleanResponse), serverName, booleanResponse, LogType.Log);
|
||||
return booleanResponse;
|
||||
boolean state = in.readBoolean();
|
||||
clientLogger.printLog(String.format("%s: %b", message, state), serverName, true, LogType.Log);
|
||||
return state;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isPlayerOne(){
|
||||
this.sendToServer("isClientOne");
|
||||
boolean isClientOne = this.getBooleanResponse("isClientOne");
|
||||
return isClientOne;
|
||||
}
|
||||
|
||||
public boolean getServerType(){
|
||||
this.sendToServer("serverType");
|
||||
boolean serverType = this.getBooleanResponse("isSingleServer");
|
||||
return serverType;
|
||||
}
|
||||
|
||||
public String getGameState() {
|
||||
this.sendToServer("gameState");
|
||||
String gameState = this.getResponse();
|
||||
@@ -93,10 +116,20 @@ public class Client {
|
||||
|
||||
public boolean getGameEnded() {
|
||||
this.sendToServer("gameEnded");
|
||||
boolean gameEnded = this.getBooleanResponse("Game ended");
|
||||
boolean gameEnded = false;
|
||||
try {
|
||||
gameEnded = in.readBoolean();
|
||||
clientLogger.printLog(String.format("Game ended: %b", gameEnded), serverName, gameEnded, LogType.Log);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return gameEnded;
|
||||
}
|
||||
|
||||
public void waitForInput() {
|
||||
|
||||
}
|
||||
|
||||
public void exitProcess(){
|
||||
try {
|
||||
out.writeUTF("exit()");
|
||||
@@ -108,12 +141,13 @@ public class Client {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasSucceeded() {
|
||||
return success;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public boolean isConnected(){
|
||||
return serverSocket.isConnected();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user