Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package battlenetemu;
- import java.io.InputStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- /**
- *
- * @author Harry
- */
- public class BattleNetEmu
- {
- public static Boolean shutdown = false;
- public static final int AUTH_INFO_REQUEST = 64;
- public static void main(String[] args)
- {
- setUpSockets();
- }
- public static void setUpSockets()
- {
- try
- {
- ServerSocket entrance = new ServerSocket(1119);
- Socket s = new Socket();
- // entrance.setSoTimeout(2000);
- // s.setSoTimeout(100);
- // System.out.println(s.getSoTimeout());
- while (!shutdown)
- {
- s = entrance.accept();
- InputStream inputData = s.getInputStream();
- HandlePacket(inputData);
- /*String msg = new String();
- int a = 0;
- while ( (a = inputData.read()) != -1 )
- {
- byte i = (byte) a;
- String st = new Character((char)i).toString();
- msg += st;
- }
- System.out.println(msg+"\n of length "+msg.length());*/
- inputData.close();
- }
- entrance.close();
- s.close();
- }
- catch(Exception e)
- {
- System.out.print(e.toString());
- }
- }
- public static void HandlePacket(InputStream inputData)
- {
- if (!readHeader(inputData))
- {
- System.out.println("ERROR: Failed to read packet header.");
- return;
- }
- }
- public static boolean readHeader(InputStream input)
- {
- try
- {
- int ID = input.read();
- int channel = input.read();
- if (channel != 0)
- {
- System.out.println("ERROR: Cannot handle channel: " + String.valueOf(channel) + " from packet ID: " + String.valueOf(ID));
- return false;
- }
- if (ID == AUTH_INFO_REQUEST)
- {
- for (int n = 0; n < 3; n++)
- {
- char[] t = new char[4];
- t[0] = (char)input.read();
- t[1] = (char)input.read();
- t[2] = (char)input.read();
- t[3] = (char)input.read();
- System.out.println("Got: " + t);
- }
- }
- else
- {
- System.out.println("ERROR: Got unhandled packet: " + String.valueOf(ID) + " on channel: " + String.valueOf(channel));
- return false;
- }
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- return false;
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment