Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package edu.kit.tm.praktikum.group5.client.protocol;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.math.BigInteger;
- import java.net.Socket;
- import java.net.UnknownHostException;
- import java.security.SecureRandom;
- import java.util.concurrent.TimeUnit;
- public class ServerTest {
- static Socket server = null;
- static String donaldName = null;
- public static void main(String[] args) throws InterruptedException {
- try {
- server = new Socket("192.168.219.129", 8001);
- DataOutputStream out = new DataOutputStream(server.getOutputStream());
- DataInputStream in = new DataInputStream(server.getInputStream());
- GameSender gSender = new GameSender(server);
- LobbySender lSender = new LobbySender(server);
- Receiver r = new Receiver();
- ConnectionManager cm = new ConnectionManager();
- Thread manager = new Thread() {
- @Override
- public void run() {
- try {
- cm.manage(server);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- };
- manager.start();
- cm.register((GameReceiver) r);
- cm.register((LobbyReceiver) r);
- cm.register((ErrorReceiver) r);
- SecureRandom random = new SecureRandom();
- donaldName = new BigInteger(50, random).toString(32);
- lSender.login(donaldName);
- TimeUnit.SECONDS.sleep(1);
- lSender.createGame((byte) 15, new byte[] {1,2,3,4,5}, (byte) 60, null);
- lSender.chat(donaldName, "Chatnachricht");
- manager.join();
- } catch (UnknownHostException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (server != null)
- try {
- server.close();
- } catch (IOException e) {
- }
- }
- }
- public static class Receiver implements GameReceiver, LobbyReceiver, ErrorReceiver {
- int i = 0;
- @Override
- public void onError(ErrorType errorType) {
- System.out.println(errorType);
- }
- @Override
- public void onChat(String sender, String recipient, String text) {
- i++;
- if (i == 2) {
- if (!text.equals("Chatnachricht")) {
- System.out.println(text);
- throw new IllegalStateException();
- }
- }
- }
- @Override
- public void onGames(GameInformation[] games) {
- i++;
- if (i == 1) {
- if (games.length != 0) {
- throw new IllegalStateException();
- }
- }
- else {
- }
- }
- @Override
- public void onGame(GameInformation game) {
- i++;
- if (i == 1) {
- byte id1 = game.getGameId1();
- byte id2 = game.getGameId2();
- String username = game.getHostUsername();
- byte[] numShips = game.getNumShips();
- byte roundTime = game.getRoundTime();
- boolean password = game.isPasswordProtected();
- if (!username.equals(donaldName)) {
- throw new IllegalStateException();
- }
- if (numShips[0] != 1) {
- throw new IllegalStateException();
- }
- if (numShips[1] != 2) {
- throw new IllegalStateException();
- }
- if (numShips[2] != 3) {
- throw new IllegalStateException();
- }
- if (numShips[3] != 4) {
- throw new IllegalStateException();
- }
- if (numShips[4] != 5) {
- throw new IllegalStateException();
- }
- if (roundTime != 60) {
- throw new IllegalStateException();
- }
- if (password) {
- throw new IllegalStateException();
- }
- }
- }
- @Override
- public void onDeleteGame(byte gameId1, byte gameId2) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onStartGame(byte boardSize, byte[] numShips, byte roundTime, String opponentName) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onPlaced() {
- // TODO Auto-generated method stub
- }
- @Override
- public void onYouStart() {
- // TODO Auto-generated method stub
- }
- @Override
- public void onWait() {
- // TODO Auto-generated method stub
- }
- @Override
- public void onHit(boolean isSunken, byte x, byte y) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onFail(byte x, byte y) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onMoved(byte[][] positions) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onTimeout() {
- // TODO Auto-generated method stub
- }
- @Override
- public void onEndgame(Reason reason) {
- // TODO Auto-generated method stub
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement