-
Notifications
You must be signed in to change notification settings - Fork 0
/
IDHandler.java
73 lines (61 loc) · 2 KB
/
IDHandler.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.net.*;
import java.io.*;
//hanterar alla paket som skickas till servern genom trådning
public class IDHandler implements Runnable{
private DatagramSocket serverSocket;
private DatagramPacket receivePacket;
Thread t;
private byte[] sendData;
private char id;
private World world;
private int players;
//konstruktor
IDHandler(DatagramPacket receivePacket, DatagramSocket serverSocket, char id, World world, int players){
this.serverSocket = serverSocket;
this.receivePacket = receivePacket;
this.sendData = new byte[64];
this.id = id;
this.world = world;
this.players = players;
t = new Thread(this, "thread");
t.start();
}
//kod som alla trådar kör
public void run(){
try {
String name = new String(receivePacket.getData());
System.out.println("Name: " + name + " Id: " + id);
this.world.addSnake(id, name);
Snake mySnake;
Snake correctSnake;
String idPos;
int size = this.world.getSnakes().size();
for(int s = 0; s < size;s++){
mySnake = world.getSnakes().get(s);
if(mySnake.getName() == id){
correctSnake = mySnake;
idPos = "" + id + ";" + correctSnake.getHead();
sendData = idPos.getBytes();
break;
}
}
int allsnakes = 0;
while(this.world.getSnakes().size() != this.players){
//wtf += 1;
//System.out.println("antal snakes: " +
System.out.println("Waiting for other players..." );
//Thread.sleep(100);
//System.out.println("antal snakes: " + this.world.getSnakes().size());
//do absolutely nothing
}
DatagramPacket response = new DatagramPacket(this.sendData, this.sendData.length, this.receivePacket.getAddress(), this.receivePacket.getPort());
this.serverSocket.send(response);
} catch (SocketException e) {
System.out.println("Socket error");
} catch (IOException e) {
System.out.println("IO error");
} //catch (InterruptedException e) {
// System.out.println("Interrupt error");
//}
}
}