Package su.lafayette.udptracker.network.packets.server

Source Code of su.lafayette.udptracker.network.packets.server.AnnounceResponse

package su.lafayette.udptracker.network.packets.server;

import org.apache.log4j.Logger;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.MessageEvent;
import su.lafayette.udptracker.structures.Action;
import su.lafayette.udptracker.Utils;
import su.lafayette.udptracker.models.Peer;

import java.util.List;

public class AnnounceResponse {
  private static final Logger logger = Logger.getLogger(ErrorResponse.class);

  public static void send(MessageEvent event, int transactionId, int interval, int leechers, int seeders, List<Peer> peers) throws Exception {
    logger.debug("AnnounceResponse::send to " + event.getRemoteAddress());

    ChannelBuffer responseBuffer = ChannelBuffers.buffer(4 + 4 + 4 + 4 + 4 + peers.size() * 6);

    responseBuffer.writeInt(Action.ANNOUNCE.getId());
    responseBuffer.writeInt(transactionId);
    responseBuffer.writeInt(interval);
    responseBuffer.writeInt(leechers);
    responseBuffer.writeInt(seeders);

    for (Peer peer : peers) {
      responseBuffer.writeInt(peer.ip);
      responseBuffer.writeShort(peer.port);
    }

    logger.debug("AnnounceResponse DUMP: " + Utils.getHexString(responseBuffer.array()));

    event.getChannel().write(responseBuffer, event.getRemoteAddress());
  }
}
TOP

Related Classes of su.lafayette.udptracker.network.packets.server.AnnounceResponse

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.