protected void sendHello(NodeInfo myNodeInfo, NodeInfo destination, UDPAdapter udpAdapter, DatagramSocket socket) throws InterruptedException { // System.out.println(">> send froud from " + myNodeInfo.getNumber() + " to " + destination.getNumber()); Binder binder = Binder.fromKeysValues( "data", myNodeInfo.getNumber() ); UDPAdapter.Packet packet = udpAdapter.createTestPacket( new Random().nextInt(Integer.MAX_VALUE), myNodeInfo.getNumber(), destination.getNumber(), UDPAdapter.PacketTypes.HELLO, Boss.pack(binder)); sendBlock(packet, socket, destination); }
protected void sendWelcome(NodeInfo myNodeInfo, NodeInfo destination, UDPAdapter udpAdapter, DatagramSocket socket) throws Exception { byte[] payload = new PublicKey(destination.getPublicKey().pack()).encrypt(Do.randomBytes(64)); UDPAdapter.Packet packet = udpAdapter.createTestPacket( new Random().nextInt(Integer.MAX_VALUE), myNodeInfo.getNumber(), destination.getNumber(), UDPAdapter.PacketTypes.WELCOME, payload); sendBlock(packet, socket, destination); }
protected void sendDataGarbage(NodeInfo myNodeInfo, NodeInfo destination, UDPAdapter udpAdapter, DatagramSocket socket) throws Exception { byte[] data = new PublicKey(destination.getPublicKey().pack()).encrypt(Do.randomBytes(64)); byte[] crc32 = new Crc32().digest(data); byte[] payload = new byte[data.length + crc32.length]; System.arraycopy(data, 0, payload, 0, data.length); System.arraycopy(crc32, 0, payload, data.length, crc32.length); UDPAdapter.Packet packet = udpAdapter.createTestPacket( new Random().nextInt(Integer.MAX_VALUE), myNodeInfo.getNumber(), destination.getNumber(), UDPAdapter.PacketTypes.DATA, payload); sendBlock(packet, socket, destination); }