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

📄 gtadirectplayserverudp.java

📁 是一款国外的网络游戏平台的源码*不是类似浩方那种虚拟局域网技术
💻 JAVA
字号:
/*
 * Created on Feb 15, 2006
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package org.GTADS.proxy;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.Socket;


/**
 * @author sday
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class GTADirectPlayServerUDP extends Thread {
	private int directPlayPort = 47624;
	private DatagramSocket directPlayUDP;
	private static GTADirectPlayServerUDP instance;
	public boolean isTriggered = false;
	
	public static GTADirectPlayServerUDP getInstance(){
		if (instance == null){
			instance = new GTADirectPlayServerUDP();
		}
		return instance;
	}
	
	public static void clearInstance(){
		if (instance != null){
			if (instance.directPlayUDP != null)
				instance.directPlayUDP.close();
			instance.stop();
			instance = null;
		}
	}
	
	public GTADirectPlayServerUDP(){
		start();
	}
	
	/* (non-Javadoc)
	 * @see java.lang.Runnable#run()
	 */
	public void run(){
		// Listen for connection on port 47624 then send it out
		try {
		directPlayUDP = new DatagramSocket(directPlayPort);
		while (true) {
			byte[] directPlayInitByte = new byte[255];
			DatagramPacket directPlayInit = new DatagramPacket(directPlayInitByte, directPlayInitByte.length);
			directPlayUDP.receive(directPlayInit);
			InetAddress connectionIP = directPlayInit.getAddress();
			System.out.println("Directplay UDP Server triggered");
			Proxy.getInstance().sendDXClientData(Proxy.getByteOffset(directPlayInit.getData(),0,directPlayInit.getLength()),false);
			System.out.println("Relaying DirectPlay UDP data to Proxy");
			//GTAVirtualHostTCP.getInstance().virtualGameConnectionSocket.close();
			//GTAVirtualHostTCP.getInstance().virtualGameConnectionSocket = new Socket("localhost", 2300);
			// and my work here is done
			//if (!GTADirectPlayServerTCP.getInstance().isTriggered){
				isTriggered = true;
				if (GTAVirtualHostTCP.getInstance().virtualGameConnectionSocket == null){
					//GTAVirtualHostTCP.getInstance().virtualGameConnectionSocket.close();
					GTAVirtualHostTCP.getInstance().virtualGameConnectionSocket = 
						new Socket(connectionIP, 2300);
				}
			//}
		}
		} catch (IOException ioe){
			return;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -