public DataMessage(DatagramPacket dp) { this.dp = dp; dpData = dp.getData(); ver = ByteShortConvert.toShort(dpData, 0); sType = ByteShortConvert.toShort(dpData, 2); connectId = ByteIntConvert.toInt(dpData, 4); clientId = ByteIntConvert.toInt(dpData, 8); sequence = ByteIntConvert.toInt(dpData, 12); length = ByteShortConvert.toShort(dpData, 16); timeId = ByteIntConvert.toInt(dpData, 18); data = new byte[length]; System.arraycopy(dpData, 22, data, 0, length); }
public void create(int timeId) { this.timeId = timeId; dpData = new byte[this.length + 16 + 8]; ByteShortConvert.toByteArray(ver, dpData, 0); // add: ver ByteShortConvert.toByteArray(sType, dpData, 2); // add: service type ByteIntConvert.toByteArray(connectId, dpData, 4); // add: sequence ByteIntConvert.toByteArray(clientId, dpData, 8); // add: sequence ByteIntConvert.toByteArray(this.sequence, dpData, 12); // add: sequence ByteShortConvert.toByteArray((short) this.length, dpData, 16); // add:length ByteIntConvert.toByteArray(this.timeId, dpData, 18); // add: sequence System.arraycopy(this.data, 0, dpData, 22, this.length); dp = new DatagramPacket(dpData, dpData.length); dp.setAddress(dstAddress); dp.setPort(dstPort); }