Server.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package server;
  2. import java.awt.Color;
  3. import java.io.IOException;
  4. import java.net.ServerSocket;
  5. import java.net.Socket;
  6. import java.util.ArrayList;
  7. public class Server {
  8. private ArrayList<User> users;
  9. private ArrayList<Message> messages;
  10. public Server(int port)
  11. {
  12. users = new ArrayList<User>();
  13. messages = new ArrayList<Message>();
  14. Thread clientconnect = new Thread(new Runnable() {
  15. @Override
  16. public void run() {
  17. try {
  18. ServerSocket server = new ServerSocket(port);
  19. while(true){
  20. System.out.println("Waiting for clients...");
  21. try {
  22. Socket client = server.accept();
  23. //TODO: Check in banned list and read username and color from reply message
  24. users.add(new User("test", Color.red, client, Server.this));
  25. System.out.println("New client connected: " + client.getRemoteSocketAddress());
  26. System.out.println("Total users connected: " + users.size());
  27. } catch (IOException e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. } catch (IOException e) {
  32. System.out.println("Something went wrong, abort.");
  33. e.printStackTrace();
  34. }
  35. }
  36. });
  37. clientconnect.start();
  38. }
  39. public synchronized void addMessage(Message message){
  40. messages.add(message);
  41. for(User u:users){
  42. if(message.getUser() != u)
  43. u.sendMessage(message);
  44. }
  45. }
  46. public void deleteUser(User user){
  47. users.remove(user);
  48. }
  49. }