IP1-4.1.2 Uppgift

Gör ett fristående program med ett grafiskt användargränssnitt som implementerar en chat-server som kan sända och ta emot text-meddelanden. Chat-servern ska använda stream-sockets.

Chat-servern ska kunna ta emot begäran om uppkoppling från nya chat-klienter och placera alla chat-klienter i en egen tråd för att kunna ta emot ytterligare chat-klienter. Varje chat-klient-tråd ligger och väntar på att en chat-klient ska skicka ett text-meddelande. När så sker så ska chat-servern "broadcasta" detta meddelande till samtliga chat-klienter. Chat-servern måste således hålla reda på alla anslutna chat-klienter i någon datasamling.

Alla text-meddelanden som sänds från chat-klienterna ska visas en en lämplig swing-komponent, exempelvis en text-area. För samtliga text-meddelanden så ska följande skrivas ut i denna swing-komponent:

Chat-servern ska gå att starta på två sätt:

  1. java Server (då ska port default bli 2000)
  2. java Server <port>

Efter detta ska chat-servern göra sig redo för att ta emot förfrågningar om anslutning från chat-klienter. Om detta lyckas så ska det i chat-serverns titelrad stå den host och port som chat-servern kör på samt antalet chat-klienter som är uppkopplade.

Observera! Chat-servern ska upptäcka när en klient inte längre är ansluten och då ta bort den ur datasamlingen och döda tråden (eventuellt kan tråden döda sig själv).