Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Had to put them together, cause I'm only allowed to upload 10 Pastebins, sorry :(
- //Player.java
- import java.io.Serializable;
- public class Player implements Serializable {
- private static final long serialVersionUID = -609782790104205505L;
- public String name;
- public byte index;
- public Player(String name, byte index) {
- this.name = name;
- this.index = index;
- }
- }
- //Client.java
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.ObjectInputStream;
- import java.net.InetSocketAddress;
- import java.net.Socket;
- import java.util.ArrayList;
- import java.util.regex.Pattern;
- import Code;
- import Commands;
- import DataReader;
- import Player;
- @SuppressWarnings("unused")
- public class Client {
- public static Socket socket = new Socket();
- private int loops = 0;
- private int maxLoops = 10;
- private static boolean killThread = false;
- private boolean receivedPacketData = false;
- private String lastCommandReceived;
- private static Code lastCommandSent;
- private static Player playerData = new Player("Hans123", (byte) 0);
- private String ip;
- private int port;
- private static byte maxPlayers;
- private static byte connectedPlayers;
- private static byte board;
- private static ArrayList<Player> playersData;
- private ArrayList<String> players = new ArrayList<String>();
- private ArrayList<Byte> playerIndex = new ArrayList<Byte>();
- public Client(String receivedIp, String receivedPort) {
- ip = receivedIp;
- port = Integer.parseInt(receivedPort);
- startGame();
- try {
- System.out.println("Trying to connect to Server...");
- socket.connect(new InetSocketAddress(ip, port));
- System.out.println("Connected!");
- } catch (IOException e) {
- System.out.println("Error occurred while trying to connect to Server.");
- }
- loopWaitForData();
- }
- public static void main(String[] args) {
- Client objConnectTest = new Client("localhost", "26121");
- }
- public void startGame() {
- System.out.println("Game is starting");
- Thread thread = new Thread(new GameMultiPlayer(ip, port));
- }
- public void loopWaitForData() {
- while (!killThread) {
- System.out.println(maxLoops + ", " + loops);
- if (maxLoops - loops > 0) {
- try {
- waitForData();
- } catch (IOException | ClassNotFoundException e) {
- loops = loops + 1;
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e1) {
- }
- System.out.println("Error occurred while waiting for Data. Thread disconnected? Waiting for more Data from " + Thread.currentThread());
- loopWaitForData();
- }
- } else if (maxLoops - loops == 0){
- System.out.println("Error occurred while waiting for Data. Maximum trys reached. Disbanding connection to " + Thread.currentThread());
- try {
- socket.close();
- } catch (IOException e) {
- System.out.println("Failed to close Socket " + Thread.currentThread());
- }
- loops = loops + 1;
- } else {
- System.out.println("Closing Thread..." + Thread.currentThread());
- setKillThread(true);
- }
- }
- }
- public void waitForData() throws IOException, ClassNotFoundException {
- InputStream input = socket.getInputStream();
- ObjectInputStream inputObject = new ObjectInputStream(input);
- Code code;
- System.out.println("Waiting for Data...");
- while ((code = (Code) inputObject.readObject()) != null) {
- System.out.println("Received Data...");
- System.out.println("Input received: " + code);
- System.out.println("Code received: " + code.getCode());
- if (code.returnData()) {
- System.out.println("Contains Data");
- }
- //Commands objCommands = new Commands(); TODO
- //desc = objCommands.getDatabaseServer(string);
- //System.out.println(desc);
- Commands.execCodeClient(code.getCode());
- return;
- }
- }
- public static void setGameData(Code objectData) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
- String string = DataReader.readData(objectData);
- System.out.println(DataReader.readData(objectData));
- String[] seperator = string.split(Pattern.quote(";"));
- maxPlayers = Byte.parseByte(seperator[0]);
- connectedPlayers = Byte.parseByte(seperator[1]);
- board = Byte.parseByte(seperator[2]);
- System.out.println(maxPlayers + ", " + connectedPlayers + ", " + board);
- }
- public static void setPlayersData(ArrayList<Player> playersData) {
- Client.playersData = playersData;
- }
- public Code getLastCommandSent() {
- return lastCommandSent;
- }
- public static void setLastCommandSent(Code lastCommandSent) {
- Client.lastCommandSent = lastCommandSent;
- }
- public static void setKillThread(boolean killThread) {
- Client.killThread = killThread;
- }
- public static Player getPlayerData() {
- return playerData;
- }
- public static void setPlayerData(Player playerData) {
- Client.playerData = playerData;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement