Server.java 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package server;
  2. import java.io.IOException;
  3. import java.net.ServerSocket;
  4. import java.net.Socket;
  5. import java.util.ArrayList;
  6. import server.match.Match;
  7. public class Server {
  8. private ArrayList<NetworkUser> matchMakingUsers;
  9. public Server(final int port) {
  10. // Users waiting to play
  11. matchMakingUsers = new ArrayList<NetworkUser>();
  12. // Server Thread
  13. Thread clientconnect = new Thread(new Runnable() {
  14. @Override
  15. public void run() {
  16. try {
  17. ServerSocket server = new ServerSocket(port);
  18. while (true) {
  19. try {
  20. Socket client = server.accept();
  21. // User connects and is added to wait list
  22. matchMakingUsers.add(new NetworkUser(client));
  23. // Match first two users
  24. if (matchMakingUsers.size() >= 2) {
  25. new Thread(new Match(matchMakingUsers.get(0), matchMakingUsers.get(1)));
  26. matchMakingUsers.remove(1);
  27. matchMakingUsers.remove(0);
  28. }
  29. System.out.println("New client connected: " + client.getRemoteSocketAddress());
  30. } catch (IOException e) {
  31. }
  32. }
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. });
  38. clientconnect.start();
  39. }
  40. }