Connections #10

Merged
MickWerf merged 5 commits from Connections into master 2020-06-06 20:43:29 +00:00
3 changed files with 70 additions and 19 deletions
Showing only changes of commit 3dbffa4ffb - Show all commits

View File

@@ -35,4 +35,8 @@ public class Server {
// gameThreads.get(game).start(); // gameThreads.get(game).start();
// } // }
} }
public DataController getDataController() {
return dataController;
}
} }

View File

@@ -3,9 +3,12 @@ package netwerkprog.game.server.controllers;
import netwerkprog.game.server.Server; import netwerkprog.game.server.Server;
import netwerkprog.game.server.ServerClient; import netwerkprog.game.server.ServerClient;
import netwerkprog.game.util.application.Controller; import netwerkprog.game.util.application.Controller;
import netwerkprog.game.util.data.ConnectionData;
import netwerkprog.game.util.data.Data; import netwerkprog.game.util.data.Data;
import java.io.IOException; import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket; import java.net.ServerSocket;
import java.net.Socket; import java.net.Socket;
import java.util.ArrayList; import java.util.ArrayList;
@@ -57,25 +60,48 @@ public class SessionController extends Controller {
* @param socket The socket used for the client connections. * @param socket The socket used for the client connections.
*/ */
public void registerClient(Socket socket) { public void registerClient(Socket socket) {
// try { try {
// System.out.println("[SERVER] got new client on " + socket.getInetAddress().getHostAddress()); System.out.println("[SERVER] got new client on " + socket.getInetAddress().getHostAddress());
// ObjectOutputStream outputStream = new ObjectOutputStream(socket.getOutputStream()); ObjectOutputStream outputStream = new ObjectOutputStream(socket.getOutputStream());
// DataInputStream inputStream = new DataInputStream(socket.getInputStream()); ObjectInputStream inputStream = new ObjectInputStream(socket.getInputStream());
//
// outputStream.writeUTF("Enter username: "); String username;
// String username = inputStream.readUTF();
// outputStream.writeObject(new ConnectionData("Connect", "Please give a username"));
// System.out.println("[SERVER] got username " + username); Object object = inputStream.readObject();
// ServerClient serverClient = new ServerClient(username, socket, this); if (object instanceof Data) {
// Data data = (Data) object;
// Thread t = new Thread(serverClient); if (data instanceof ConnectionData) {
// t.start(); ConnectionData connectionData = (ConnectionData) data.getPayload();
// if (connectionData.getAction().equals("Connect")) {
// this.clientThreads.put(username,t); username = connectionData.getMessage();
// this.clients.add(serverClient); } else {
// } catch (IOException ex) { //todo error messaging.
// ex.printStackTrace(); registerClient(socket);
// } return;
}
} else {
//todo error messaging.
registerClient(socket);
return;
}
} else {
//todo error messaging.
registerClient(socket);
return;
}
System.out.println("[SERVER] got username " + username);
ServerClient serverClient = new ServerClient(username, socket, this, server.getDataController());
Thread t = new Thread(serverClient);
t.start();
this.clientThreads.put(username,t);
this.clients.add(serverClient);
} catch (IOException | ClassNotFoundException ex) {
ex.printStackTrace();
}
} }
/** /**

View File

@@ -0,0 +1,21 @@
package netwerkprog.game.util.data;
public class ConnectionData extends Data {
private final String action;
private final String message;
public ConnectionData(String action, String username) {
super("Connection");
super.setPayload(this);
this.action = action;
this.message = username;
}
public String getAction() {
return action;
}
public String getMessage() {
return message;
}
}