⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prudptrackercodecs.java

📁 java 文件下载器。可自定义
💻 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 + -