📄 prudptrackercodecs.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: PRUDPTrackerCodecs.java
package org.gudy.azureus2.core3.tracker.protocol.udp;
import com.aelitis.net.udp.uc.*;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.Map;
// Referenced classes of package org.gudy.azureus2.core3.tracker.protocol.udp:
// PRUDPPacketReplyAnnounce, PRUDPPacketReplyAnnounce2, PRUDPPacketReplyConnect, PRUDPPacketReplyError,
// PRUDPPacketReplyScrape, PRUDPPacketReplyScrape2, PRUDPPacketTracker, PRUDPPacketRequestAnnounce,
// PRUDPPacketRequestAnnounce2, PRUDPPacketRequestConnect, PRUDPPacketRequestScrape
public class PRUDPTrackerCodecs
{
private static boolean registered = false;
public PRUDPTrackerCodecs()
{
}
public static void registerCodecs()
{
if (registered)
{
return;
} else
{
registered = true;
PRUDPPacketReplyDecoder reply_decoder = new PRUDPPacketReplyDecoder() {
public PRUDPPacketReply decode(PRUDPPacketHandler handler, InetSocketAddress originator, DataInputStream is, int action, int transaction_id)
throws IOException
{
switch (action)
{
case 0: // '\0'
return new PRUDPPacketReplyConnect(is, transaction_id);
case 1: // '\001'
if (PRUDPPacketTracker.VERSION == 1)
return new PRUDPPacketReplyAnnounce(is, transaction_id);
else
return new PRUDPPacketReplyAnnounce2(is, transaction_id);
case 2: // '\002'
if (PRUDPPacketTracker.VERSION == 1)
return new PRUDPPacketReplyScrape(is, transaction_id);
else
return new PRUDPPacketReplyScrape2(is, transaction_id);
case 3: // '\003'
return new PRUDPPacketReplyError(is, transaction_id);
}
throw new IOException((new StringBuilder()).append("Unrecognised action '").append(action).append("'").toString());
}
};
Map reply_decoders = new HashMap();
reply_decoders.put(new Integer(0), reply_decoder);
reply_decoders.put(new Integer(1), reply_decoder);
reply_decoders.put(new Integer(2), reply_decoder);
reply_decoders.put(new Integer(3), reply_decoder);
PRUDPPacketReply.registerDecoders(reply_decoders);
PRUDPPacketRequestDecoder request_decoder = new PRUDPPacketRequestDecoder() {
public PRUDPPacketRequest decode(PRUDPPacketHandler handler, DataInputStream is, long connection_id, int action, int transaction_id)
throws IOException
{
switch (action)
{
case 0: // '\0'
return new PRUDPPacketRequestConnect(is, connection_id, transaction_id);
case 1: // '\001'
if (PRUDPPacketTracker.VERSION == 1)
return new PRUDPPacketRequestAnnounce(is, connection_id, transaction_id);
else
return new PRUDPPacketRequestAnnounce2(is, connection_id, transaction_id);
case 2: // '\002'
return new PRUDPPacketRequestScrape(is, connection_id, transaction_id);
}
throw new IOException("unsupported request type");
}
};
Map request_decoders = new HashMap();
request_decoders.put(new Integer(0), request_decoder);
request_decoders.put(new Integer(1), request_decoder);
request_decoders.put(new Integer(2), request_decoder);
PRUDPPacketRequest.registerDecoders(request_decoders);
return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -