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

📄 gtadirectplayservertcp.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.DataInputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class GTADirectPlayServerTCP extends Thread{
	private int directPlayPort = 47624;
	private ServerSocket directPlayServ;
	private Socket directPlayConnect;
	private static GTADirectPlayServerTCP instance;
	public boolean isTriggered = false;
	
	public static GTADirectPlayServerTCP getInstance(){
		if (instance == null){
			instance = new GTADirectPlayServerTCP();
		}
		return instance;
	}
	
	public static void clearInstance(){
		if (instance != null){
			try {
				instance.stop();
				if (instance.directPlayConnect != null)
					instance.directPlayConnect.close();
				if (instance.directPlayServ != null)
					instance.directPlayServ.close();
			} catch (IOException ioe){
				return;
			}
			instance = null;
		}
	}
	
	public GTADirectPlayServerTCP(){
		start();
	}
	
	/* (non-Javadoc)
	 * @see java.lang.Runnable#run()
	 */
	public void run(){
		// Listen for connection on port 47624 then send it out
		try {
			directPlayServ = new ServerSocket(directPlayPort);
			while(true) {
				byte[] directPlayInitByte = new byte[255];
				directPlayConnect = directPlayServ.accept();
				InetAddress connectionIP = directPlayConnect.getInetAddress();
				DataInputStream din = new DataInputStream(directPlayConnect.getInputStream());
				int p = din.read(directPlayInitByte);
				directPlayConnect.close();
				System.out.println("DirectPlay TCP Server triggered");
				Proxy.getInstance().sendDXClientData(Proxy.getByteOffset(directPlayInitByte,0,p),true);
				System.out.println("Relaying DirectPlay Data to Host");
				//GTAVirtualHostTCP.getInstance().virtualGameConnectionSocket.close();
				System.out.println("Opening Game connection on port 2300");
				// and my work here is done
				//if (!GTADirectPlayServerUDP.getInstance().isTriggered){
					isTriggered = true;
					if (GTAVirtualHostTCP.getInstance().virtualGameConnectionSocket == null){
						//GTAVirtualHostTCP.getInstance().virtualGameConnectionSocket.close();
						GTAVirtualHostTCP.getInstance().virtualGameConnectionSocket = 
							new Socket(connectionIP, 2300);
					}
				//}
			}
		} catch (IOException ioe){
			//ioe.printStackTrace();
			return;
		}		
	}
}

⌨️ 快捷键说明

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