# Chat-palvelin Chat-palvelin tietoliikennekurssin työksi. ## Versiot * Python 3.5 sekä Python-kirjastot * socket (latest) * threading (latest) ## Suunnitelma Projektin tavoite on tehdä palvelin-asiakas-keskusteluohjelma, joka tukee viestien lähettämistä, palvelimelle yhdistämistä ja sieltä poistumista. ## Protokolla Ohjelmalle on suunniteltu TCP:n päälle viestintäprotokolla. ### Palvelimelta asiakkaalle #### BROADCAST Välittää asiakkaan lähettämän viestin muille asiakkaille. ``` BROADCAST\n user_name\n message content\n \0 ``` ### Asiakkaalta palvelimelle #### CONNECT Ilmoittaa yhdistäneen asiakkaan käyttäjänimen. ``` CONNECT\n user_name\n \0 ``` #### DISCONNECT Ilmoittaa asiakkaan katkaisevan yhteyden. ``` DISCONNECT\n user_name\n \0 ``` #### MESSAGE Lähettää viestin palvelimelle välitettäväksi muille asiakkaille BROADCASTilla. ``` MESSAGE\n user_name\n message content\n \0 ``` #### KEEPALIVE Ylläpitää yhteyttä palvelimeen, jos käyttäjä ei ole aktiivinen. Lähetetään tasaisin väliajoin. ``` KEEPALIVE\n user_name\n \0 ``` ## Tekijät Jan Tuomi ja Toni Miilunpalo