gtadirectplayservertcp.java
来自「是一款国外的网络游戏平台的源码*不是类似浩方那种虚拟局域网技术」· Java 代码 · 共 89 行
JAVA
89 行
/*
* 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 + =
减小字号Ctrl + -
显示快捷键?