예제 #1
0
  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);
  }
예제 #2
0
  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);
  }