Skip to content
Snippets Groups Projects
Commit 5e471a07 authored by Leonard's avatar Leonard
Browse files

client done

parent 35cada54
No related branches found
No related tags found
No related merge requests found
package com.galaxytrucker.galaxytruckerreloaded.Communication;
import com.galaxytrucker.galaxytruckerreloaded.Server.RequestObject;
import com.galaxytrucker.galaxytruckerreloaded.Server.ResponseObject;
import lombok.NonNull;
import java.io.*;
import java.net.Socket;
public class Client {
/** Client socket for network communication */
/**
* Client socket for network communication
*/
private Socket socket;
/** ClientControllerCommunicator for logic handling */
private ClientControllerCommunicator clientControllerCommunicator;
/**
* - Request and Response from and to the server.
* */
public String sendAndReceive(){
// View clicks something
// Controller issues a request
// Client ships request to server
// receive response
// give response to controller
// update views
// return server response as string
return null;
}
/**
* Used to send data
*/
private PrintWriter send;
/** Constructor
* Loop for receiving Data
* */
public Client(@NonNull String ipAddress, @NonNull int port) throws IllegalArgumentException{
clientControllerCommunicator = new ClientControllerCommunicator();
/**
* Used to receive data
*/
private BufferedReader receive;
/**
* ObjectOutputStream for sending objects
*/
private ObjectOutputStream sendObject;
/**
* ObjectInputStream for receiving objects
*/
private ObjectInputStream receiveObject;
/**
* Send a request to the server
* @return the server's response
*/
public ResponseObject sendAndReceive(RequestObject requestObject) throws IllegalArgumentException {
try {
this.socket = new Socket(ipAddress,port);
sendObject.writeObject(requestObject);
return (ResponseObject) receiveObject.readObject();
}
catch (Exception e){
e.printStackTrace();
throw new IllegalArgumentException(e.getMessage());
}
}
/**
* Login
*/
public boolean login(String username) throws IllegalArgumentException {
try {
send.println("[LOGIN]:" + username);
return receive.readLine().equals("[ACCEPTED]");
} catch (Exception e) {
e.printStackTrace();
throw new IllegalArgumentException(e.getMessage());
}
}
/**
* Constructor
*/
public Client(@NonNull String ipAddress, @NonNull int port) throws IllegalArgumentException {
try {
socket = new Socket(ipAddress, port);
send = new PrintWriter(socket.getOutputStream(), true);
receive = new BufferedReader(new InputStreamReader(socket.getInputStream()));
sendObject = new ObjectOutputStream(socket.getOutputStream());
receiveObject = new ObjectInputStream(socket.getInputStream());
} catch (Exception e) {
e.printStackTrace();
throw new IllegalArgumentException("Couldn't initialize connection to server");
}
......
package com.galaxytrucker.galaxytruckerreloaded.Server;
import java.io.*;
import java.net.Socket;
public class ClientHandler implements Runnable {
......@@ -13,12 +14,34 @@ public class ClientHandler implements Runnable {
/** ServerServiceCommunicator */
private ServerServiceCommunicator serverServiceCommunicator;
/** Used to send data */
private PrintWriter send;
/** Used to receive data */
private BufferedReader receive;
/** ObjectOutputStream for sending objects */
private ObjectOutputStream sendObject;
/** ObjectInputStream for receiving objects */
private ObjectInputStream receiveObject;
/** Constructor
* @param clientSocket - the client's socket
* @param server - the server */
public ClientHandler(Socket clientSocket,Server server){
public ClientHandler(Socket clientSocket,Server server) throws IllegalArgumentException {
this.clientSocket = clientSocket;
this.server = server;
try {
sendObject = new ObjectOutputStream(clientSocket.getOutputStream());
receiveObject = new ObjectInputStream(clientSocket.getInputStream());
send = new PrintWriter(clientSocket.getOutputStream(),true);
receive = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
}
catch (Exception e){
e.printStackTrace();
throw new IllegalArgumentException();
}
}
/** Run */
......
package com.galaxytrucker.galaxytruckerreloaded.Server;
import com.galaxytrucker.galaxytruckerreloaded.Model.Ship;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class RequestObject {
/** Type of Request */
private RequestType requestType;
/** Username */
private String username;
/** Ship */
private Ship ship;
}
package com.galaxytrucker.galaxytruckerreloaded.Server;
public enum RequestType {
LOGIN
}
package com.galaxytrucker.galaxytruckerreloaded.Server;
public class ResponseObject {
}
......@@ -2,7 +2,6 @@ package com.galaxytrucker.galaxytruckerreloaded.Server;
import com.galaxytrucker.galaxytruckerreloaded.Communication.Client;
import lombok.NonNull;
import java.net.ServerSocket;
import java.net.Socket;
......
......@@ -2,7 +2,6 @@ package com.galaxytrucker.galaxytruckerreloaded.Server;
import com.galaxytrucker.galaxytruckerreloaded.Model.Ship;
import lombok.AccessLevel;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor(access = AccessLevel.PUBLIC)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment