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

📄 gtavirtualhosttcp.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.DataOutputStream;
import java.io.IOException;
import java.net.*;

/**
 * @author sday
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class GTAVirtualHostTCP extends Thread {
	public static GTAVirtualHostTCP instance;
	private int virtualHostPort = 2301;
	private ServerSocket virtualHostListenSocket;
	private Socket virtualHostConnection;
	protected Socket virtualGameConnectionSocket;
	private byte[] tcpData = new byte[255];
	
	public static GTAVirtualHostTCP getInstance(){
		if (instance == null){
			instance = new GTAVirtualHostTCP();
		}
		return instance;
	}
	
	public static void clearInstance(){
		if (instance != null){
			try {
				if (instance.virtualHostListenSocket != null)
					instance.virtualHostListenSocket.close();
				if (instance.virtualHostConnection != null)
					instance.virtualHostConnection.close();
				if (instance.virtualGameConnectionSocket != null)
					instance.virtualGameConnectionSocket.close();
			} catch (IOException ioe){
				return;
			}
			instance.stop();
			instance = null;
		}
	}
	
	public GTAVirtualHostTCP() {
		start();
	}
	
	public void run(){
		// Sit there and listen
		try {
			virtualHostListenSocket = new ServerSocket(virtualHostPort);
			virtualHostConnection = virtualHostListenSocket.accept();
			
			while (true) {
				tcpData = new byte[3000];
				DataInputStream din = new DataInputStream(virtualHostConnection.getInputStream());
				int p = din.read(tcpData);
				System.out.println("From Game:");
				Proxy.displayByte(Proxy.getByteOffset(tcpData,0,p));
				System.out.println();
				
				byte[] tempByte = Proxy.getByteOffset(tcpData,0,p);
				Proxy.getInstance().sendTCPClientData(tempByte);
				System.out.println("Sending data through proxy");
			}
		} catch (IOException ioe){
			return;
		}
	}
	
	public void processVHostTCP(byte[] data) throws IOException {
		// When an incoming connection for a player happens
		// Handle it here
		if (virtualGameConnectionSocket == null){
			virtualGameConnectionSocket = new Socket(InetAddress.getByName("localhost"), 2300);
		}
		DataOutputStream dout = new DataOutputStream(virtualGameConnectionSocket.getOutputStream());
		dout.write(data,0,data.length);
		dout.flush();
		System.out.println("Sending data to local game");
		
	}
}

⌨️ 快捷键说明

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