Triple Eye Industrieel Ingenieur Informatica Algemeen Intranet Vierde jaar Netwerken IV Labo's Chatserver

Bouw een chatserver met select.

Opdracht

Schrijf een chat-server die verschillende client kan bedienen. Gebruik hierbij de functie select. Je zal een lijst moeten bijhouden van alle verbonden client-sockets.

Pas de server verder aan zodat de data die wordt gestuurd door een client X naar alle andere verbonden clients wordt gestuurd, maar niet naar X zelf. Test nadien deze code grondig uit.

Pas de server zo aan dat clients bij het maken van een verbinding een @nick meesturen naar de server. Zorg er voor dat de gekozen nick uniek is en dat de gebruiker niet kan chatten zonder nick.

Wanneer nu een client tekst stuurt naar alle andere clients kan de server de nick meesturen zodat andere clients weten van wie deze tekst afkomstig is.
Voorbeeld van een dialoog tussen client en server:

chat 127.0.0.1 5678
client: @ronaldo
server: Gelieve een andere nick te nemen deze nick is reeds ingenomen
client: @jan
server: Welkom jan!
client: Hallo iedereen!
client: ronaldo - Dag jan
...

Test nu je code grondig uit, controleer vooral of het verwijderen (bij afsluiten clientconnectie) toevoegen van clients goed verloopt.

Pas de programma's aan zodat een client een private boodschap kan sturen naar een andere client. De boodschap verloopt via de server. De client geeft aan dat het een private boodschap is door de tekst te beginnen met *nick*.

Afgeven

Plaats je oplossing op de U:-drive in de directory PipesFifo voor maandag 7/12/2009 18u.

Oplossing

Eeen mogelijke oplossing kan je hier vinden.


K. Van De Wiele 26/11/2009

Welkom | Hogeschool Gent | INWE | Studentenserver | Docentenserver | Intranet