Advertisement
Guest User

Untitled

a guest
Jul 19th, 2011
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. package cspspserver;
  2.  
  3. import java.net.* ;
  4. import java.io.* ;
  5. import java.util.* ;
  6.  
  7. class CSPSPServer
  8. {
  9. private static List<String> playerList = new ArrayList<String>();
  10. private static String send = "";
  11.  
  12. private static String serverName = "NAME";
  13. private static String serverMap = "MAP";
  14. private static char numPlayers = 0;
  15. private static char maxPlayers = 32;
  16.  
  17. private static char sp = 0;
  18.  
  19. public static void main(String[] args) throws Exception
  20. {
  21. // Set IP to 127.0.0.1 for testing, change this later I suppose :(
  22. InetAddress ia = InetAddress.getByName("192.168.1.101");
  23.  
  24. // Create UDP Server Socket brah :B
  25. DatagramSocket serverSocket = new DatagramSocket(42692);
  26.  
  27. // Summa dat data brah :B
  28. byte[] receiveData = new byte[1024];
  29. byte[] sendData= new byte[1024];
  30.  
  31. // Check to see if the socket was created successfully
  32. if (serverSocket.isBound())
  33. System.out.println("Server was successfully started!");
  34. else
  35. System.out.println("Server couldn't start D:!");
  36.  
  37. // Loop
  38. while (true)
  39. {
  40. // Create a receiving packet and receive any data that is incoming...
  41. DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
  42. serverSocket.receive(receivePacket);
  43.  
  44. String data = new String(receivePacket.getData(), 0, receivePacket.getLength());
  45.  
  46. //data = stripData(data);
  47.  
  48. InetAddress IPAddress = receivePacket.getAddress();
  49. int port = receivePacket.getPort();
  50.  
  51. parseData(data, IPAddress.toString(), port);
  52. System.out.println(stringToHex(data));
  53. sendData = send.getBytes();
  54. DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
  55. serverSocket.send(sendPacket);
  56. data = "";
  57. }
  58. }
  59.  
  60. private static String stripData(String data)
  61. {
  62. data = data.substring(0, data.indexOf(0));
  63. return data;
  64. }
  65.  
  66. private static void parseData(String data, String IP, int port)
  67. {
  68. if (data.charAt(0) == 37) //equals("%" + (char)(1))) // Pinged...
  69. {
  70. // Reply format is
  71. // % SERVERNAME MAP NUMPLAYERS MAXPLAYERS
  72. // % (02) (00) (length of server name + 1) SERVER NAME (00) (length of map name + 1) MAP NAME (00) (NUM PLAYERS) (MAX PLAYERS)
  73. System.out.println("You were pinged by " + IP + ":" + port);
  74.  
  75. send = "%" + (char)(2) + sp + (char)(serverName.length() + 1) + serverName + sp + (char)(serverMap.length() + 1) + serverMap + sp + (char)(numPlayers) + (char)(maxPlayers);
  76. System.out.println(send);
  77. }
  78. else
  79. {
  80. // NAME on enter and leave
  81. System.out.println(data + " connected to the server.");
  82. send = "dtadfag";
  83. //playerList.add(data + " : " + IP + port);
  84. }
  85. }
  86.  
  87. private static String stringToHex(String str)
  88. {
  89. char[] chars = str.toCharArray();
  90. StringBuffer strBuffer = new StringBuffer();
  91. for (int i = 0; i < chars.length; i++) {
  92. strBuffer.append(Integer.toHexString((int) chars[i]) + " ");
  93. }
  94. return strBuffer.toString();
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement