public PingMessage2(int connectId, int clientId, int pingId)
 {
     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(pingId, dpData, 12);   //add: sequence
     dp = new DatagramPacket(dpData, dpData.Length);
 }
 public PingMessage(int connectId, int clientId, int pingId, int downloadSpeed, int uploadSpeed)
 {
     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(pingId, dpData, 12);   //add: sequence
     ByteShortConvert.toByteArray((short)(downloadSpeed / 1024), dpData, 16);
     ByteShortConvert.toByteArray((short)(uploadSpeed / 1024), dpData, 18);
     dp = new DatagramPacket(dpData, dpData.Length);
 }
 public CloseMessage_Conn(int connectId, int clientId)
 {
     byte[] dpData = new byte[12];
     this.clientId  = clientId;
     this.connectId = connectId;
     ByteShortConvert.toByteArray(ver, dpData, 0);
     ByteShortConvert.toByteArray(sType, dpData, 2);
     ByteIntConvert.toByteArray(connectId, dpData, 4);
     ByteIntConvert.toByteArray(clientId, dpData, 8);
     dp = new DatagramPacket(dpData, dpData.Length);
 }
 public CloseMessage_Stream(int connectId, int clientId, int closeOffset)
 {
     byte[] dpData = new byte[16];
     this.clientId  = clientId;
     this.connectId = connectId;
     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(closeOffset, dpData, 12); //add: sequence
     dp = new DatagramPacket(dpData, dpData.Length);
 }
Exemple #5
0
        public static Packet buildIpV4(
            MacAddress srcAddress_mac,
            MacAddress dstAddrress_mac,
            IpV4Packet.Builder builder_ipv4)
        {
            org.pcap4j.packet.Packet.Builder builder = null;
            EthernetPacketType etherType;     //EtherType etherType = null;
            Packet             p = null;

            if (ppp)
            {
                etherType = EthernetPacketType.PointToPointProtocolOverEthernetSessionStage;   //etherType = EtherType.PPPOE_SESSION_STAGE;

                UnknownPacket.Builder pppBuilder = new UnknownPacket.Builder();
                byte[] ipData = builder_ipv4.build().getRawData();

                byte[] lenb = new byte[2];
                ByteShortConvert.toByteArray((short)(ipData.length + 2), lenb, 0);

                byte[] pppHead = new byte[8];
                System.arraycopy(pppHead_static, 0, pppHead, 0, pppHead.length);
                System.arraycopy(lenb, 0, pppHead, 4, 2);

                byte[] newData = new byte[pppHead.length + ipData.length];
                System.arraycopy(pppHead, 0, newData, 0, pppHead.length);
                System.arraycopy(ipData, 0, newData, 8, ipData.length);
                pppBuilder.rawData(newData);

                builder = pppBuilder;
            }
            else
            {
                etherType = EtherType.IPV4;
                builder   = builder_ipv4;
            }

            EthernetPacket.Builder etherBuilder = new EthernetPacket.Builder();
            etherBuilder.dstAddr(dstAddrress_mac)
            .srcAddr(srcAddress_mac)
            .type(etherType)
            .payloadBuilder(builder)
            .paddingAtBuild(true);

            p = etherBuilder.build();

            return(p);
        }
Exemple #6
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
            Array.Copy(this.data, 0, dpData, 22, this.length);
            dp = new DatagramPacket(dpData, dpData.Length);
            dp.setAddress(dstAddress);
            dp.setPort(dstPort);
        }
Exemple #7
0
        public AckListMessage(long connId, List <int> ackList, int lastRead, //ArrayList ackList
                              Dictionary <int, SendRecord> sendRecordTable, int timeId,
                              int connectId, int clientId)
        {
            this.clientId  = clientId;
            this.connectId = connectId;
            this.ackList   = ackList;
            this.lastRead  = lastRead;
            int len1 = 4 + 4 + 10 + 4 * ackList.Count;

            dpData = new byte[len1 + 24 + 9];
            sType  = MessageType.sType_AckListMessage;
            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(lastRead, dpData, 4 + 8);
            //dpData[8]=(byte) ackList.size();
            ByteShortConvert.toByteArray((short)ackList.Count, dpData, 8 + 8);  //add: service type
            for (int i = 0; i < ackList.Count; i++)
            {
                int sequence = (int)ackList[i];
                ByteIntConvert.toByteArray(sequence, dpData, 10 + 4 * i + 8);  //add: sequence
                ////#MLog.println("发送确认 "+sequence);
            }

            int u1 = timeId - 2;

            ByteIntConvert.toByteArray(u1, dpData, len1 + 8);
            SendRecord r1 = sendRecordTable[u1];
            int        s1 = 0;

            if (r1 != null)
            {
                s1 = r1.getSendSize();
            }
            ByteIntConvert.toByteArray(s1, dpData, len1 + 4 + 8);

            int u2 = timeId - 1;

            ByteIntConvert.toByteArray(u2, dpData, len1 + 8 + 8);
            SendRecord r2 = sendRecordTable[u2];
            int        s2 = 0;

            if (r2 != null)
            {
                s2 = r2.getSendSize();
            }
            ByteIntConvert.toByteArray(s2, dpData, len1 + 12 + 8);

            int u3 = timeId;

            ByteIntConvert.toByteArray(u3, dpData, len1 + 16 + 8);
            SendRecord r3 = sendRecordTable[u3];
            int        s3 = 0;

            if (r3 != null)
            {
                s3 = r3.getSendSize();
            }
            ByteIntConvert.toByteArray(s3, dpData, len1 + 20 + 8);

            dp = new DatagramPacket(dpData, dpData.Length);
        }