Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cspspserver;
- import java.net.* ;
- import java.io.* ;
- import java.util.* ;
- class CSPSPServer
- {
- private static List<String> playerList = new ArrayList<String>();
- private static String send = "";
- private static String serverName = "NAME";
- private static String serverMap = "MAP";
- private static char numPlayers = 0;
- private static char maxPlayers = 32;
- private static char sp = 0;
- public static void main(String[] args) throws Exception
- {
- // Set IP to 127.0.0.1 for testing, change this later I suppose :(
- InetAddress ia = InetAddress.getByName("192.168.1.101");
- // Create UDP Server Socket brah :B
- DatagramSocket serverSocket = new DatagramSocket(42692);
- // Summa dat data brah :B
- byte[] receiveData = new byte[1024];
- byte[] sendData= new byte[1024];
- // Check to see if the socket was created successfully
- if (serverSocket.isBound())
- System.out.println("Server was successfully started!");
- else
- System.out.println("Server couldn't start D:!");
- // Loop
- while (true)
- {
- // Create a receiving packet and receive any data that is incoming...
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- serverSocket.receive(receivePacket);
- String data = new String(receivePacket.getData(), 0, receivePacket.getLength());
- //data = stripData(data);
- InetAddress IPAddress = receivePacket.getAddress();
- int port = receivePacket.getPort();
- parseData(data, IPAddress.toString(), port);
- System.out.println(stringToHex(data));
- sendData = send.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
- serverSocket.send(sendPacket);
- data = "";
- }
- }
- private static String stripData(String data)
- {
- data = data.substring(0, data.indexOf(0));
- return data;
- }
- private static void parseData(String data, String IP, int port)
- {
- if (data.charAt(0) == 37) //equals("%" + (char)(1))) // Pinged...
- {
- // Reply format is
- // % SERVERNAME MAP NUMPLAYERS MAXPLAYERS
- // % (02) (00) (length of server name + 1) SERVER NAME (00) (length of map name + 1) MAP NAME (00) (NUM PLAYERS) (MAX PLAYERS)
- System.out.println("You were pinged by " + IP + ":" + port);
- send = "%" + (char)(2) + sp + (char)(serverName.length() + 1) + serverName + sp + (char)(serverMap.length() + 1) + serverMap + sp + (char)(numPlayers) + (char)(maxPlayers);
- System.out.println(send);
- }
- else
- {
- // NAME on enter and leave
- System.out.println(data + " connected to the server.");
- send = "dtadfag";
- //playerList.add(data + " : " + IP + port);
- }
- }
- private static String stringToHex(String str)
- {
- char[] chars = str.toCharArray();
- StringBuffer strBuffer = new StringBuffer();
- for (int i = 0; i < chars.length; i++) {
- strBuffer.append(Integer.toHexString((int) chars[i]) + " ");
- }
- return strBuffer.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement