-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathACKContent.java
More file actions
50 lines (44 loc) · 1.04 KB
/
ACKContent.java
File metadata and controls
50 lines (44 loc) · 1.04 KB
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
import java.net.DatagramPacket;
public class ACKContent {
String packetType;
int packetNumber;
boolean validACK;
ACKContent(int packetNumber)
{
packetType = "ACK";
this.packetNumber = packetNumber;
validACK = true;
}
ACKContent(DatagramPacket packet)
{
byte[] data;
data = packet.getData();
String packetString = new String(data);
if(packetString.substring(0,3).equals("ACK"))
{
this.packetType = "ACK";
this.packetNumber = Integer.parseInt(packetString.substring(3, 5));
validACK = true;
}
else
validACK = false;
}
public DatagramPacket toDatagramPacket() {
DatagramPacket packet= null;
try
{
String content = packetType + ((packetNumber < 10) ? "0" + packetNumber : "" + packetNumber);
byte[] data = content.getBytes();
packet = new DatagramPacket(data, data.length);
} catch(Exception e) { e.printStackTrace(); }
return packet;
}
public boolean isValidACK()
{
return validACK;
}
public int getACKNumber()
{
return packetNumber;
}
}