Suunnittelu ja toiminnallinen määrittely

C&VServer

 

Kurssi: Tietojenkäsittelyn ammattitutkinto / Ohjelmointi

Koulu: Turun AKK

Tekijä: Petri Kultanen

 

 

Projektin nimi: C&VServer

 

Dokumentin tila: Valmis

 

 

Aloitettu:2.2.2004

Muokattu: 20.5.2004

Tulostettu:25.5.2004

 


Sisällys

Sisällys. 2

1 Johdanto. 4

1.1 Dokumentin tarkoitus ja kattavuus. 4

1.2 Lyhenteet ja määritelmät 4

2 Järjestelmän yleiskuvaus. 4

2.1 Sovellusalueen kuvaus. 4

2.2 Järjestelmän liittyminen ympäristöönsä. 4

2.3 Laiteympäristö. 4

2.4 Ohjelmistoympäristö. 4

2.5 Toteutuksen tekniset reunaehdot 4

3 Arkkitehtuurin kuvaus. 5

3.1 Suunnitteluperiaatteet 5

3.2 Tietokanta arkkitehtuuri 6

3.2.1 Vieraskirja. 6

3.2.2 Lokitiedot 6

3.2.3 Palvelimen asetukset 6

3.3 Ohjelmistoarkkitehtuuri, moduulit, prosessit 7

4 Luokkakuvaukset 8

4.1 Server 8

4.2 Connection. 9

4.3 LiveConnection. 9

4.4 MessageHandler 11

4.5 Log. 12

4.6 Users. 13

4.7 User 16

4.8 VisitorsBook. 18

4.9 VBookEntry. 19

4.10 HTMLStrings. 20

4.11 ServerSettings. 23

4.12 AdminMainFrame. 26

4.13 ServerSettingsFrame. 27

4.14 BannedAddressesFrame. 27

4.15 ChatFrame. 27

4.16 OnlineUsersFrame. 28

4.17 VBookFrame. 28

4.18 LogFrame. 29

5 Toiminnot 29

5.1 Yleistä. 29

5.2 Toiminnot Palvelimen pitäjälle. 29

5.2.1 C&VServer Pääikkuna. 29

5.2.2 Palvelimen asetukset 29

5.2.3 Osoite kieltolista. 30

5.2.4 Keskustelun seuraaminen. 31

5.2.5 Paikalla olevat käyttäjät 31

5.2.6 Vieraskirjamerkinnät 31

5.2.7 Palvelimen lokitiedot 32

5.3 Toiminnot selaimelle. 32

5.3.1 Tervetuloasivu. 32

5.3.2 Vieraskirja. 33

5.3.3 Keskusteluun kirjautumis-sivu. 33

5.3.4 Keskustelun viestikehys. 33

5.3.5 Keskustelun toimintakehys. 33

5.3.6 Virhesivut 34

5.4 Järjestelmän toiminnot 35

5.4.1 Käynnistäminen ilman käyttöliittymää. 35

6 Jatkokehitys ajatuksia. 35

6.1 Palvelin. 35

6.2 Käyttöliittymä. 35

6.3 Toiminnot asiakkaan selaimelle. 36

 


1 Johdanto

1.1 Dokumentin tarkoitus ja kattavuus

Tässä dokumentissa on kuvattuna ohjelmiston rakenne, luokat, moduulit, suunnitteluratkaisut, arkkitehtuuri, toiminnot sekä paljon muuta.

 

1.2 Lyhenteet ja määritelmät

JRE = Java Runtime Enviroment. Ks. www.sun.com

Vieraskirjamerkintä = VBookEntry luokan olio, joka pitää sisällään lähetysajan, nimimerkin ja itse viestin.

 

2 Järjestelmän yleiskuvaus

2.1 Sovellusalueen kuvaus

 

Sovellus toimii palvelimena lähiverkossa, tai internetissä. Käyttäjä ottaa palvelimeen yhteyden internetselaimellaan, ja pääsee tätä kautta jättämään viestejä vieraskirjaan, tai keskustelemaan reaaliaikaisesti muiden käyttäjien kanssa.

 

2.2 Järjestelmän liittyminen ympäristöönsä

Sovellus kuuntelee sille määrättyä porttia ja odottaa TCP-yhteyksiä. Verkosta päin on oltava sovelluksen kuuntelemaan porttiin esteetön pääsy, eli välissä ei saa olla välityspalvelinta, ja palomuurissa on oltava ”reikä” sovelluksen käyttämälle portille.

 

2.3 Laiteympäristö

Laiteympäristönä on pc-tietokone, jossa on verkkokortti tai modeemi yhteys.

Laitteiston nopeudella ei ole rajoituksia, mutta se vaikuttaa siihen, kuinka monta asiakasta palvelin voi kerralla palvella.

 

2.4 Ohjelmistoympäristö

Käyttöjärjestelmänä sovelluksella on joko Windows tai Linux.

Käyttöjärjestelmän versiolla ei ole rajoituksia, kunhan siinä toimii JRE.

Sovellus vaatii toimiakseen JRE 1.4 tai uudemman, eli Javan ajonaikaisen ympäristön.

 

2.5 Toteutuksen tekniset reunaehdot

Sovelluksen on toimittava Windowsin ohella myös Linuxilla.

Palvelimen asiakkaalta ei saa vaatia muuta sovellusta kuin nykyaikaisen internetselaimen.

Sovelluksen tekninen ratkaisu rajoittaa palvelimen käytön, ns. ”kotikäyttöön”. Satoja asiakita palveleva palvelin olisi tarvinnut järeämmät ratkaisut.

3 Arkkitehtuurin kuvaus

3.1 Suunnitteluperiaatteet

3.1.1 Palvelimen eristys käyttöliittymästä

Palvelimen käyttöliittymä eristetään palvelimen toiminnasta siten, että käyttöliittymä luokkia ei tarvitse luoda, jotta palvelin pystyisi toimimaan.

Palvelimen puolelta ei saa viitata käyttöliittymän luokkiin.

 

3.1.2 Kielet ja dokumentointi

Koodissa käytetään javadoc kommentteja luokille ja metodeille, mutta ei luokkien yksityisille attribuuteille.

Tavallisia java-kommentteja käytetään koodin yksityiskohtaisemman toiminnan selostamiseen.

Kielet

            - Suomeksi

                        Käyttöliittymä

                        Ohjekirja

                        Dokumentit

                        Kommentit ja javadoc

            - Englanniksi

                        Luokkien, metodien sekä muuttujien-nimet

 

Dokumentit tehdään projektisuunnitelman mukaan.

 

3.1.3 Tietoliikenne protokolla

Kaikki tietoliikenteeseen liittyvät ratkaisut tulisi olla vähintään HTTP 1.0 määritysten mukaisia.

 

3.1.4 Koodin nimeämiskäytäntö

Koodi kirjoitetaan englannin kielellä ja nimeämiskäytäntö on mahdollisimman paljon JavaBean-mallin mukainen.

Esimerkkejä  mallista:

- Luokan nimet isolla alkukirjaimella.

- Metodien nimet pienellä alkukirjaimella.

- Attribuuttien nimet pienellä alkukirjaimella.

- Kaikissa edellä mainituissa nimien seuraavat sanat alkavat isolla, ja kaikki kirjoitetaan yhteen. Esim. appendAllFiles

- Käytä get ja set alkuisia saanti ja asetus metodeita.

- Vakiot aina isoilla kirjaimilla


3.2 Tietokanta arkkitehtuuri

Sovellus käyttää kolmea tiedostoa, jotka kirjoitetaan kiintolevylle, hakemistoon josta sovellus käynnistettiin.

 

3.2.1 Vieraskirja

 

Vieraskirja merkinnät tallennetaan ”visitorsbook.bin” tiedostoon. Se on binääritiedosto, jota ei pysty muokkaamaan tekstieditorilla. Tiedostoon kirjoitetaan Vector-olio joka sisältää VBookEntry luokan olioita. Tämä on mahdollista Java kielien tukemalla luokkien sarjoittamisella. Aina kun VBookEntry luokkaa muutetaan, on kaikki visitorsbook.bin tiedostot poistettava, koska yhteensopivuus vanhaan versioon menetetään.

3.2.2 Lokitiedot

Lokitiedot kirjoitetaan tiedostoon ”log.dat”.

Tiedosto on ASCII tiedosto, johon lisätään tekstirivejä aina tiedoston loppuun.

Tiedoton voi tyhjentää palvelimen käyttöliittymästä.

Tekstirivi muodostuu seuraavasti.

- Päivämäärä ja kellonaika.

- Vakavuus (Debug, Info, Normal, Fatal)

- Luokka.Metodi() jossa ilmoitus tapahtui

- Ilmoitusteksti.

Jos loki tiedostoa ei voi levylle kirjoittaa, niin sitä ei yritetä enää uudestaan, ennen kuin palvelin on käynnistetty uudestaan.

 

Esimerkki lokitiedonrivistä:

23.2.2004   16:36:17   Fatal: VisitorsBook.loadEntrys() Tiedostoa ei voinut avata

3.2.3 Palvelimen asetukset

Palvelimen asetukset kirjoitetaan tiedostoon ”Settings.dat”

Tiedosto on ASCII tiedosto.

Tiedot ovat aina samassa järjestyksessä, ja niitä voi muuttaa ilman palvelimen graafista käyttöliittymää, jos noudattaa seuraavaa muotoa.

 

Tekstit tulevat omille riveilleen. Älä kirjoita tässä esimerkissä olevia rivi-numeroita.

 

  1. Keskustelijoiden maksimimäärä palvelimella yhtäaikaa. Integer välillä 1-99.
  2. Montako viestiä näytetään uusille keskustelijoille. Integer välillä 1-99.
  3. Kuinka monta sekuntia palvelimella saa olla tyhjän panttina Integer 1-9999.
  4. Kysytäänkö keskustelijalta ikää ja sukupuolta. Boolean (”true” tai ”false”) huomaa kirjoita tekstit pienellä.
  5. Ottaako ylläpitäjä vastaan keskustelupyyntöjä. Boolean (”true” tai ”false”) huomaa kirjoita tekstit pienellä.
  6. Palvelimen IP-osoite. String ”192.432.34.32”
  7. Palvelimen portti. String ”80”
  8. Hyväksytäänkö vieraskirjamerkinnät automaattisesti. Boolean (”true” tai ”false”) huomaa kirjoita tekstit pienellä.

 

 

Esimerkki tiedoston sisällöstä

5

50

300

true

false

10.0.0.8

80

true

 

 

3.3 Ohjelmistoarkkitehtuuri, moduulit, prosessit

 

Luokat on jaettu seuraavanlaisiin kokonaisuuksiin.

 

Tietoliikenne

Server

Connection

LiveConnection

 

Nämä luokat hoitavat palvelimen perustehtävät, joita ovat muun muassa http-yhteyksien vastaanotto ja käsittely, sekä html-sivujen palautus asiakkaille.

Tarkempi toiminnan selostus on ylläpito-dokumentin luvussa 2.1.

 

Keskustelualue

User

Users

MessageHandler

 

Näitä luokkia käytetään hallinnoimaan keskustelualueen paikalla olevia käyttäjiä, sekä välittämään näiden viestejä muille keskustelijoille.

 

Vieraskirja

VisitorsBook

VBookEntry

 

Vieraskirjan kaikki viestit on tallennettu näihin luokkiin. VisitorsBook luokassa on kaikki vieraskirjan käsittelyyn tarvittavat työkalut.

 

Palvelimen apuluokat

ServerSettings

Log

HTMLStrings

 

Palvelin tarvitsee toimiakseen muutaman apuluokan, jotka hoitavat asetukset, tietojen keräyksen, sekä html-sivujen varaston.

 

Käyttöliittymä

AdminMainFram

ChatFrame

ServerSettingsFrame

VBokFrame

OnlineUsersFrame

LogFrame

BannedAddressesFrame

 

Jokaisella käyttöliittymänikkunalla on oma luokka. AdminMainFrame on käyttöliitymän pääikkuna, ja se myös luo muut ikkunat tarvittaessa.

4 Luokkakuvaukset

4.1 Server

4.1.1 Yleiskuvaus

Pääluokka koko C&VServer sovellukselle.
Tässä luokassa luodaan paketin muista luokista olioita, jotka ovat muiden luokkien käytössä. Muut luokat saavat nämä oliot käyttöönsä vain viitemuuttujien kautta, jotka välitetään luokkien rakentajissa.

 

4.1.2 Rajapinta yleisesti

Rajapinta: Luokka toimii rajapintana käyttöliittymän ja itse palvelimen välillä. Rajapinnan toiminnot ovat keskusteluviestin välitys ChatFrame luokalle, sekä ylläpidon kutsuminen keskusteluun.

 

4.1.3 Rajapintametodit

4.1.3.1 callAdmin(String)

Toimii välittäjänä palvelimen ja sen käyttöliittymän välillä.
Välittää keskustelijan pyynnön (Ylläpitäjälle kutsu liittyä keskusteluun) palvelimen ylläpitäjän graafiseen käyttöliittymään.

Toiminta: Kutsuttaessa tätä metodia Avautuu palvelimen käyttöliittymäikkuna ja esille tulee dialogi jossa on kutsuvan henkilön nimimerkki.

 

Parametrit:

String Keskustelijan nimimerkki, joka ylläpitäjää kutsuu.

 

4.1.3.2 relayMsgToAdmin(String)

Toimii välittäjänä palvelimen ja sen käyttöliittymän välillä. Välittää tulevat keskusteluviestit AdminMainFramen kautta ChatFramelle.

 

Parametrit:

String Keskusteluviesti

 

4.1.3.3 getMessages()

Palauttaa vectorin joka pitää sisällään (String luokanolioita) viimeksi lähetetyt keskusteluviestit, jotka näytetään uusille tulijoille.

Paluuarvo:

Vector Vector-olio joka sisältää String-olioita

 

4.1.3.4 main(String[])

Sovelluksen käynnistävä metodi, jolle voi antaa sovellusta käynnistettäessä parametrin "noui", joka jättää graafisenkäyttöliittymän luokat tekemättä.

Tämä luokka ottaa vastaan tulevia yhteyksiä, ja luo niille uuden säikeen, joka käsittelee yhteyksien pyynnöt.

 

Parametrit:

String[] Merkkijonotaulukko, joka sisältää sovelluksen käynnistyksen yhteydessä annetut parametrit.

 

4.2 Connection

4.2.1 Yleiskuvaus

Server luokka tekee jokaiselle tulevalle yhteydenotolle uuden säikeen, joka vastaanottaa http-yhteyden, tutkii mitä siinä pyydetään, ja palauttaa vastauksena html-sivun.
Kaikki muut yhteydet, paitsi viestikehyksen pyyntö, suljetaan heti kun html-sivu on lähetetty. Samalla säie lopettaa toimintansa.

 

4.2.2 Rajapinta yleisesti

Rajapinta: Luokalla ei ole rajapintaa. Vain Server luokka voi käynnistää luokan säikeen.

 

4.2.3 Rajapintametodit

4.2.3.1 Connection(Socket, MessageHandler, Users, ServerSettings, VisitorsBook)

Tässä rakentajassa välitetään tälle luokalle Server luokan ylläpitämiä olioita.

 

Parametrit:

Socket Socket josta yhteys tulee

MessageHandler MessageHandler luokanolio

Users Users luokanolio johon on tallennettu kaikki paikalla olevat käyttäjät

ServerSettings ServerSettings luokanolio.

VisitorsBook VisitorsBook luokanolio.

 

4.2.3.2 run()

Säikeen käynnistämä metodi. Käsittelee yhteyspyynnön.

 

4.3 LiveConnection

4.3.1 Yleiskuvaus

Pitää yhteyden yllä WWW-selaimen viestikehykseen, kunnes käyttäjä kirjautuu ulos tai hänet poistetaan keskustelusta.

Toiminta: Connection luokka kutsuu tämän luokan stayListening metodia. Kun yhteys katkeaa tai se katkaistaan, stayListening metodi kutsuu Users luokan removeUser metodia, joka taas kutsuu tämän luokan LogOut metodia. Joka kutsuu vielä closeConnection metodia, ja näin on yhteys loppunut. Ja keskustelija poistunut palvelimelta, kaiken tämän välissä luokka ottaa vastaan keskusteluviestejä ja välittää ne keskustelijan selaimen viestikehykseen.

 

4.3.2 Rajapinta yleisesti

Hoitaa yhteyden lopettamisen, sekä viestien välityksen keskustelijan selaimelle. Luokan palvelujen pääkäyttäjät ovat Connection sekä MessageHandler luokat, mutta tätä luokkaa saa käyttää muutkin paketin luokat.
Luokasta tehdään olio vain Connection luokan run() metodissa. Muut luokat saavat viitteen tähän olion user.getClient() metodin kautta, johon tämä luokka lisää itsensä StayListening() metodissa.

 

4.3.3 Rajapintametodit

4.3.3.1 LiveConnection(Socket, BufferedWriter, BufferedReader, Users, Int, ServerSettings)

Rakentajalla välitetään tälle luokalle sen käyttämiä viitteitä olioihin, jotka on luotu Server luokassa

Parametrit:

Socket Socket jossa yhteyttä pidetään auki

BufferedWriter Kirjoitusvirta johon tietoa lähetetään

BufferedReader Lukuvirta josta tietoa luetaan

Users Users luokan olio jossa on kaikkien paikalla olvien käyttäjientiedot

Int Käyttäjäntunnistenumero johon tämä avoinna oleva yhteys liittyy

ServerSettings ServerSettings luokanolio josta luetaan palvelimenasetukset

 

4.3.3.2 closeConnection()

Sulkee yhteyden.

 

4.3.3.3 logOut()

Lähettää ilmoituksen käyttäjän poistumisesta, muille käyttäjille.
Tätä metodia kutsuu Users luokan removeUse- metodi.
Kutsuu lopuksi closeConnection metodia.

 

4.3.3.4 sendHtmlMsg(String)

Lähettää viestin keskustelijan selaimen viestikehykseen.
Toiminta:
Kirjoittaa merkkijonon sellaisenaan auki olevaan kirjoitusvirtaan.
Saa sisältää html-koodia.
Tätä metodia ei saa käyttää keskustelijoiden viestin välittämiseen, vaan se on tarkoitettu ylläpidollisille viesteille, ja mahdollisille tuleville palvelimen lisäominaisuuksille.
Viestin loppuun ei lisätä ruudun vieritystä tekevää JavaScriptiä.

Parametrit:

String Valmiiksi muotoiltu merkkijono joka saa sisältää html-koodia.

 

4.3.3.5 sendmsg(String,int)

Lähettää viestin keskustelijan selaimen viestikehykseen.
Toiminta: Kirjoittaa merkkijonon, sekä tarvittavat html-lisäkoodit, auki olevaan kirjoitusvirtaan. (Turvallisuus syistä viesti ei saa sisältää html-koodia)
Viestien värit:
0 Musta: Tavalliset viestit kaikille
1 Punainen: Yksityiset viestit
2 Sininen: Ylläpitäjän tai palvelimen lähettämät viestit

Viestin jälkeen lähetetään vielä JavaScript, joka rullaa sivua automaattisesti alaspäin.

 

Parametrit:

String Valmiiksi muotoiltu viesti

Int Tekstin väri. Numero arvo 0,1, tai 2. 0=Musta, 1=Punainen, 2=Sininen

 

4.3.3.6 stayListening()

Pitää yhteyttä yllä kunnes se katkeaa, joko keskustelijan tai palvelimen toimesta.
Toiminta:
Luokassa on silmukka joka pysähtyy odottamaan yhteyden katkeamista.
Kutsuu lopuksi Users luokan removeUser metodia, joka poistaa käyttäjäntiedot palvelimelta.

 

4.4 MessageHandler

 

4.4.1 Yleiskuvaus

Välittää keskusteluviestit kaikille kirjautuneille käyttäjille.

 

4.4.2 Rajapinta yleisesti

Rajapinta: Luokalla on kaksi metodia joilla voi lähettää viestejä keskustelijoiden selaimen viestikehykseen. Tästä luokasta tekevät olion Server, LiveConnection ja ChatFrame luokat.
Viestit lähetetään Liveconnection.sendMsg() metodilla.

 

4.4.3 Rajapintametodit

4.4.3.1 MessageHandler(Users)

Rakentaja, joka ottaa vastaan viitteet tarvittaviin olioihin.

 

Parametrit:

Users Users luokanolio joka pitää sisällään kaikkien kirjautuneiden käyttäjien User luokanoliot.

 

4.4.3.2 sendMessages(String, int 1, int 2)

Lähettää keskusteluviestejä eteenpäin. Viestejä lähetetään keskustelijoille, sekä ylläpidon käyttöliittymään.

Toiminta:
Tarkistetaan ettei samaa viestiä yritetä lähettää kahta kertaa peräkkäin. Tutkii kenelle tai keille viesti on tarkoitettu, ja kutsuu vastaavien keskustelijoiden LiveConnection.sendmsg metodia.
Ylläpidon ja järjestelmän viestit lähetetään eri värisinä, kuin muut.

 

Parametrit:

String Välitettävä viesti

Int 1 Keskustelijan tunniste numero jolle viesti lähetetään (9999= kaikille)

Int 2 Lähettäjän tunnistenumero (0=Ylläpito/Järjestelmän omat tiedotteet)

 

 

 

 

4.4.3.3 sendUserInfo(Int)

Muotoilee käyttäjistä listan html-muotoon, ja lähettää sen sitä pyytävälle keskustelijalle. Lista muodostetaan taulukon muotoon, käyttäen <TABLE> html-tagia.

 

Parametrit:

Int Keskustelijan tunnistenumero joka listaa pyytää.

4.5 Log

 

4.5.1 Yleiskuvaus

Kerää lokitietoja ja tallentaa ne tiedostoon "log.dat" Tiedosto tallennetaan hakemistoon, mistä palvelin on käynnistetty.
Tämä luokka on abstrakti, joten sitä on kutsuttava suoraan luokkanimellä.

4.5.2 Rajapinta yleisesti

Luokalla on 4 metodia joita voi kutsua eri tasoisten lokitietojen tallentamista varten. Metodeita on 4 siksi että eri tasoiset tiedot voidaan muotoilla eri tavalla tai jättää kokonaan näyttämättä. Lisäksi on metodit lokin tyhjentämiseen ja lukemiseen kokonaisuudessaan. Tätä luokkaa käyttävät lähes kaikki pakkauksen luokat.

 

4.5.3 Rajapintametodit

4.5.3.1 clearLogFile()

Tyhjentää lokitiedoston levyltä.
Kirjoittaa uuteen log.dat tiedostoon, tiedon koska uusi lokitiedosto on luotu.

 

4.5.3.2 debug(String)

Lisää loki tietoihin ylläpitoa helpottavia tietoja.
Tämän metodin runko kommentoidaan pois, kun sovellus on valmis.

 

Parametrit:

String Ilmoitus teksti

 

4.5.3.3 fatal(String)

Lisää lokitietoihin virheilmoituksen, jolla on vaikutusta palvelimen toimintaan. Nämä virheet pitäisi huomioida ja mahdollisuuksien mukaan korjata.

 

Parametrit:

String Ilmoitus teksti

 

 

4.5.3.4 getLogFile()

Palauttaa vector muodossa koko lokitiedoston. Yksi rivi on yhdessä String oliossa.
Lukee tiedot log.dat tiedostosta, jos tiedostoa ei ole pystytty kirjoittamaan levylle, niin ei edes yritetä hakea sitä levyltä, vaan palautetaan virheilmoitus vectorin sisällä.

 

Paluuarvo:

Vector Vector-olio jossa on String-oliona lokitiedostonrivit.

 

4.5.3.5 getTime()

Palauttaa nykyisen kellonajan muodossa HH:MM:SS

 

Paluuarvo:

String Muotoiltu merkkijono. HH:MM:SS.

 

 

4.5.3.6 info(String)

Lisää loki tietoihin ilmoituksia, joista voi olla hyötyä.

 

Parametrit:

String Ilmoitusteksti

 

4.5.3.7 normal(String)

Lisää lokitietoihin virheilmoituksen, joka ei vaikuta palvelimen toimintaan.

Parametrit:

String Ilmoitusteksti

 

4.6 Users

4.6.1 Yleiskuvaus

Luokka pitää sisältää kaikkien keskusteluun kirjautuneiden keskustelijoidentiedot.
Tiedot on tallennettu user-oliona vector-taulukkoon.

 

4.6.2 Rajapinta yleisesti

Julkisia metodeita käytetään yhden tai kaikkien keskustelijoiden tietojen muuttamiseen ja tiedusteluun.

 

4.6.3 Rajapintametodit

4.6.3.1 addMsgCount(int)

Lisää käyttäjän kirjanpitoon yhden lähetetyn viestin.
Jokaiselle keskustelijalle pidetään kirjaa siitä kuinka monta viestiä hän on lähettänyt.

 

Parametrit:

int Tunnistenumero

 

4.6.3.2 addUser(String,int,int,String)

Lisää uuden keskustelijan.
Tarkistaa nimimerkin pituuden.
Jos käyttäjän lisääminen ei onnistunut, palauttaa kokonaisluvun 0.

Onnistuneen lisäyksen jälkeen palautetaan keskustelijan tunnistenumero.

 

Parametrit:

String  Nimimerkki

int  Ikä

int  Sukupuoli (1=Mies 2=Nainen)

String  IP-osoite

 

Paluuarvo:

Int Tunnistenumero

 

4.6.3.3 checkIdleUsers()

Tarkistaa onko keskustelija ollut linjoilla liian kauan lähettämättä yhtään viestiä. Tällaiset keskustelijat poistetaan palvelimelta.

Tätä metodia kutsutaan Connection.resFrames metodista.

 

4.6.3.4 formatTime(int)

Muotoilee sekunneista merkkijonon, jossa on eroteltu minuutit ja sekunnit esim. 85 sekuntia = "1:25"

 

Parametrit:

int Sekunnit

Paluuarvo:

String Muotoiltu merkkijono muotoa MM:SS

 

4.6.3.5 getAliasStr(int)

Palauttaa keskustelijan nimimerkin, tunnistenumeron perusteella.
Jos tunnistenumeroa vastaavaa nimimerkkiä ei löydy, palautetaan tyhjä merkkijono.
Jos numero on 9999 palautetaan teksti "Kaikille".

 

Parametrit:

Int Tunnistenumero

 

Paluuarvo:

String nimimerkki

 

4.6.3.6 getAllClients()

Palauttaa kaikkien käyttäjien LiveConnection luokanoliot vectorissa.

Paluuarvo:

Vector LiveConnection-olioita vectorissa

 

4.6.3.7 getClient(int)

Palauttaa LiveConnection olion joka on rekisteröity id-tunnistenumeron omaavalle keskustelijalle.

Jos tunnistenumeroa vastaavaa keskustelijaa ei löydy palautetaan tyhjä osoitin.

 

Parametri:

int Tunnistenumero

 

Paluuarvo:

LiveConnection LiveConnection luokanolio.

 

4.6.3.8 getCopyOfUsersVector()

Palauttaa kopion tämän hetkisestä käyttäjä vectorista, joka sisältää User luokanoliota.

 

Paluuarvo:

Vector vectori joka sisältää User luokanolioita

 

 

 

4.6.3.9 getId(String)

Palauttaa keskustelijan tunnistenumeron, nimimerkin perusteella.
Jos nimimerkkiä vastaavaa tunnistenumeroa ei löydy palautetaan arvo 0.

 

Parametrit:

String Nimimerkki

Paluuarvo:

Int Tunnistenumero

 

4.6.3.10 getUserListInHTML()

Muotoilee käyttäjistä html-muotoisen listan taulukkona.
Palauttaa Vectorin joka sisältää String luokanolioita. Merkkijonossa on Html-koodattuna yhden käyttäjäntiedot.

 

Paluuarvo:

Vector vectori jossa on String-olioita sisällä.

 

4.6.3.11 getUsersCount()

Palauttaa kirjautuneina olevien käyttäjien määrän.

Paluuarvo:

int Kirjautuneena olevien käyttäjien määrä.

 

4.6.3.12 isOnline(int)

Palauttaa tiedon onko annetun tunnistenumeron omaava keskustelija kirjautuneena sisään.

Parametrit:

int Tunnistenumero

Paluuarvo:

boolean Tieto onko tunnistenumeroa vastaavaa keskustelijaa olemassa

 

4.6.3.13 isSameMessage(String, int)

Tarkistaa onko annettu viesti sama kuin minkä käyttäjä on viimeksi lähettänyt.
Tällä pyritään estämään ruudun täyttämistä häiritsevillä viesteillä.

 

Parametrit:

String Viesti teksti

int Keskustelijan tunnistenumero

 

Paluuarvo:

boolean Tieto oliko viesti sama kuin edellinenkin lähetetty viesti.

 

4.6.3.14 removeUser(int)

Poistaa keskustelijan, annetun tunnistenumeron perusteella.

 

Parametrit:

int Tunnistenumero

 

4.6.3.15 setClient(int, LiveConnection)

Asettaa viittauksen LiveConnetion luokanolioon, annetulle käyttäjälle.

 

Parametrit:

int Käyttäjän tunnistenumero

LiveConnection LiveConnection luokanolio.

 

4.6.3.16 Users(ServerSettings)

Rakentaja

 

Parametrit:

ServerSettings ServerSettings luokanolio, joka pitää sisällään palvelimen asetukset

 

4.7 User

4.7.1 Yleiskuvaus

Luokka pitää sisällään yhden keskustelijantiedot.

 

4.7.2 Rajapinta yleisesti

Kaikki luokan metodit liittyvät tietojen hakemiseen tai muuttamiseen.

Käyttö: Luokkaa käyttävät ainakin Users, OnlineUsersFrame sekä HTMLStrings luokat.

 

4.7.3 Rajapintametodit

4.7.3.1 User(String,LiveConnection,int,int,int,String)

Rakentajassa asetetaan keskustelijan tiedot.

 

Parametrit:

String Nimimerkki

LiveConnection LiveConnection luokanolio joka on yhdistetty tähän keskustelijaan

int Tunnistenumero

int Ikä

int Sukupuoli

String IP-Osoite

 

4.7.3.2 addMessagesSend()

Lisää lähetettyjen viestien määrää yhdellä, sekä nollaa laskurin, joka seuraa kuinka kauan keskustelija on ollut lähettämättä yhtään viestiä.

 

4.7.3.3 getAge()

Palauttaa keskustelijan iän

Paluuarvo:

int Ikä

 

4.7.3.4 getAlias()

Palauttaa nimimerkin

Paluuarvo:

String Nimimerkki

 

4.7.3.5 getClient()

Palauttaa viitteen LiveConnection-olioon, joka on rekisteröity tälle keskustelijalle

Paluuarvo:

LiveConnection LiveConnection luokanolio.

4.7.3.6 getId()

Palauttaa tunnistenumeron

Paluuarvo:

int Tunnistenumero

 

4.7.3.7 getIdleTime()

Palauttaa sekunteina, kuinka kauan aikaa on kulunut keskustelijan viimeksi lähettämästä viestistä.

 

Paluuarvo:

int Aika sekuntteina

 

4.7.3.8 getIpAddress()

Palauttaa keskustelijan IP-Osoitteen

 

Paluuarvo:

String IP-Osoite merkkijonona

 

4.7.3.9 getLastMessage()

Palauttaa keskustelijan viimeksi lähettämän viestinsisällön

Paluuarvo:

String Viesti merkkijonona

 

4.7.3.10 getMessagesSend()

Palauttaa kuinka monta viestiä keskustelija on lähettänyt

Paluuarvo:

int Viestien määrä

 

4.7.3.11 getSessionTime()

Palauttaa ajan sekunteina, kuinka kauan keskustelija on ollut kirjautuneena.

 

Paluuarvo:

int Aika sekunteina

 

4.7.3.12 getSex()

Palauttaa keskustelijan sukupuolen

 

Paluuarvo:

int Sukupuoli (0=Ei annettu, 1=Mies, 2=Nainen)

 

4.7.3.13 setClient(LiveConnection)

Rekisteröi LiveConnection luokanolion tälle keskustelijalle

 

Parametrit:

LiveConnection LiveConnection luokanolio

 

4.7.3.14 setLastMessage(String)

Asettaa keskustelijan viimeksi lähettämän viestinsisällön

Parametrit:

Stirng Viesti

 

4.8 VisitorsBook

4.8.1 Yleiskuvaus

Luokka pitää sisällään vieraskirjanmerkintöjä jotka ovat VBookEntry luokanolioita.

Vieraskirja merkintöjen tallennus ja lataus, sekä lisäys että poisto on hoidettu tässä luokassa.

Jokaisella viestillä on oma id-numero, jolla sitä käsitellään.

 

4.8.2 Rajapinta yleisesti

Julkisia metodeita käytetään tietojen vieraskirjaan lisäämiseen ja poistoon, sekä sieltä hakemiseen. Vieraskirjan lataus ja tallennus eivät ole julkisia toimintoja.

 

4.8.3 Rajapintametodit

4.8.3.1 VisitorsBook(ServerSettings)

Tässä rakentajassa ladataan vieraskirja tiedot tiedostosta

 

Parametrit:

ServerSettings serverSettings luokanolio

 

4.8.3.2 addEntry(String,Vector,Boolean)

Lisää vieraskirjamerkinnän vieraskirjaan, ja tallentaa vieraskirjan levylle.
Tarkistaa ettei samaa viestiä yritetä lähettää monta kertaa peräkkäin.

 

Parametrit:

String  Lähettäjän nimimerkki

Vector  Sisältää String-olioita joissa on viestinrivit

boolean  Tieto onko viesti tarkoitettu vain ylläpitäjälle

 

4.8.3.3 getCopyOfVector()

Palauttaa kopion tämän luokan sisäisestä vectorista, joka sisältää vBookEntry-olioita

 

Paluuarvo:

Vector vectori jossa on vBookEntry-olioita.

 

4.8.3.4 getEntrysInStrVector()

Muotoilee kaikki hyväksytty ja julkiset vieraskirjaviestit String-olioina vector luokkaan.
Yksi viesti on yhdessä vector-oliossa string-oliona.
Lopuksi kaikki yhden viestin vectorit yhdistetään vielä yhteen vectoriin.

 

Paluuarvo:

Vector kaksiulotteinen vectori joista sisimpänä on String-olioina koko viestintiedot.

 

4.8.3.5 removeEntry(int)

Poistaa vieraskirjamerkinnän, ja palauttaa tiedon onnistuiko poisto.

 

Parametrit:

int Merkinnän id-numero jota ollaan poistamassa

 

Paluuarvo:

boolean Onnistuiko poisto

 

4.8.3.6 setAccepted(int)

Asettaa vieraskirja merkinnän hyväksytyksi näytettäväksi julkisesti.

 

Parametrit:

int Merkinnän id-numero joka asetetaan hyväksytyksi

 

Paluuarvot:

boolean Onnistuiko merkintä

 

4.9 VBookEntry 

4.9.1 Yleiskuvaus

Pitää sisällään yhden vieraskirjaviestintiedot.

 

4.9.2 Rajapinta yleisesti

Kaikki muut metodit, paitsi setAdminAccept, on tarkoitettu vieraskirjamerkinnän tarkasteluun.

 

4.9.3 Rajapintametodit

4.9.3.1 VBookEntry(String, String, Vector, boolean, int, boolean)

Rakentaja alustaa uuden olioin annetuilla arvoilla

 

Parametrit:

String Päivämäärä

String Lähettäjän nimimerkki

Vector String-olioita vectorissa, jossa on kokoviestin kaikki rivit.

boolean Tieto onko viesti ylläpidon hyväksymä julkiseen esitykseen.

int  Tunniste numero

boolean Tieto onko viesti tarkoitettu vain ylläpidon nähtäväksi

 

4.9.3.2 getDate()

Palauttaa päiväyksen jolloin viesti on jätetty

 

Paluuarvo:

String Päiväys merkkijonona

 

4.9.3.3 getId()

Palauttaa viestin tunnistenumeron

 

Paluuarvo:

int Viestin tunnistenumero kokonaislukuna

 

4.9.3.4 getSender()

Palauttaa viestin jättäjän nimimerkin.

 

Paluuarvo:

String Viestin jättäjän nimimerkki

 

4.9.3.5 getText()

Palauttaa viestin sisällön

 

Paluuarvo:

Vector Viestin sisältö String-olioina Vectorin sisällä

 

4.9.3.6 isAdminAccept()

Palauttaa onko viesti hyväksytty julkiseksi esitettäväksi.

 

Paluuarvo:

boolean true/false

 

4.9.3.7 isOnlyToAdmin()

Palauttaa tiedon onko viesti tarkoitettu vain ylläpidon luettavaksi

Paluuarvo:

boolean true/false

 

4.9.3.8 setAdminAccept(Boolean)

Asettaa viestin hyväksytyksi julkisesti esitettäväksi

Parametrit:

boolean Boolean onko viesti hyväksytty julkiseksi esitettäväksi

 

 

4.10 HTMLStrings

4.10.1 Yleiskuvaus

Luokka muotoilee html-sivuja, lähetettäväksi selaimelle.

 

4.10.2 Rajapinta yleisesti

Kaikki luokan metodit palauttavat String-oliona html-sivun, joka on tuotettu metodin saamilla parametreilla. Tämän luokan palveluita käyttävät Connection sekä LiveConnection luokat.

 

4.10.3 Rajapintametodit

4.10.3.1 HTMLStrings(String, String)

Tällä rakentajalla välitetään palvelimen osoite ja portti, joita käytetään muodostettaessa html-sivujen linkeissä.

 

Parametrit:

String Palvelimen osoite

String Palvelimen portti

 

 

4.10.3.2 banned()

Virhe: Tulevat yhteydet asiakkaan osoitteesta on toistaiseksi kielletty, väärinkäytösten vuoksi.

 

Paluuarvo:

String html-koodi

 

4.10.3.3 chatAliasError()

Virhe: Nimimerkki on jo käytössä, tai virheellinen

 

Paluuarvo:

String html-koodi

 

4.10.3.4 chatControls(int, Users, int)

Muotoilee keskustelun toimintakehyksen html-koodin.
Toimintakehys on se jossa on kaikki napit ja viestinkirjoituskenttä.

 

Parametrit:

int Keskustelijan tunnistenumero

Users  Users luokanolio, johon on tallennettu kaikkien paikalla olevien käyttäjientiedot

int Tunnistenumero sille keskustelijalle joka laitetaan toimintakehyksen alasvetovalikon oletusarvoksi.

 

Paluuarvo:

String html-koodi

 

4.10.3.5 chatError()

Virhe: Keskustelussa tuli palvelimelle tunnistamaton pyyntö

 

Paluuarvo:

String html-koodi

 

 

4.10.3.6 chatFull()

Viesti: Keskustelualue on täynnä

 

Paluuarvo:

String html-koodi

 

4.10.3.7 chatLogout()

Viesti: Keskustelija on kirjautunut ulos keskustelusta.

 

Paluuarvo:

String html-koodi

 

4.10.3.8 frames(int)

Muotoilee html-sivun joka tekee kaksi kehystä, joista ylemmässä on keskustelun toimintakehys, ja alemmassa viestikehys.

Mukaan koodataan keskustelijan tunnistenumero.

 

Parametrit:

int Keskustelijan tunnistenumero

 

Paluuarvo:

String html-koodi

 

4.10.3.9 help()

Ohjeet keskusteluun sekä vieraskirjaan

Tämä metodi lataa Help.html sivun levyltä.

 

Paluuarvo:

String html-koodi

 

4.10.3.10 javaScroll()

Palauttaa JavaScriptin joka rullaa ruutua alaspäin sitä mukaa kun tekstiä tulee lisää. Käyttöohje: Lisää tämä merkkijono jokaisen lähetetyn viestin jälkeen.

 

Paluuarvo:

String html-koodi

 

4.10.3.11 login(Boolean,int,int)

Muotoilee keskusteluun kirjautumis-sivun.
Sivun muoto riippuu siitä onko palvelimen asetuksista valittuna asetus, joka kysyy keskustelijan sukupuolen ja iän.

 

Parametrit:

boolean Kysytäänkö keskustelijalta ikää ja sukupuolta.

int Henkilöitä keskustelussa

int Keskustelijoiden maksimimäärä

 

Paluuarvo:

String html-koodi

 

4.10.3.12  vBook(VisitorsBook)

Muotoilee vieraskirja viesteistä html-sivun, jonka lopussa on uuden viestin lähettämiseen tarkoitettu lomake.

 

Parametrit:

VisitorsBook VisitorsBook-olio, joka pitää sisällään koko vieraskirjan

 

Paluuarvo:

String html-koodi

 

4.10.3.13 vBookConfirmError()

Virhe: Vieraskirjaviestissä oli virheellisiä kenttiä.

 

Paluuarvo:

String html-koodi

 

4.10.3.14 vBookConfirmOK()

Viesti: Vieraskirjaviesti on onnistuneesti lähetetty.

 

Paluuarvo:

String html-koodi

 

4.10.3.15 welcome()

Koko palvelimen tervetuloasivu, ja samalla index.html sivua vastaava.

 

Paluuarvo:

String html-koodi

 

4.11 ServerSettings

4.11.1 Yleiskuvaus

Luokka pitää sisällään palvelimen kaikki asetukset. Tiedot pidetään tiedostossa settings.dat.
Luokka hallinnoi myös IP-Porttikieltolistaa johon tallennetaan osoitteet, joista ei saa päästä palvelimelle. Tätä kieltolistaa ei tallenneta levylle, vaan se katoaa kun palvelin sammutetaan.

 

4.11.2 Rajapinta yleisesti

Kaikki tämän luokan metodit ovat julkisia, ja ne liittyvät joko asetusten muuttamiseen tai tilan tarkistamiseen. Lisäksi on metodit asetusten tallentamiseksi, ja hakemiseksi tiedostosta.
Käyttö: Server luokka tekee tästä luokasta olion, ja muiden luokkien on käytettävä Server luokan jakamaa viitemuuttujaa.

 

4.11.3 Rajapintametodit

4.11.3.1 ServerSettings()

Rakentaja, jossa ladataan asetukset levyltä.

 

4.11.3.2 getBannedIPs()

Palauttaa Vectorin, jossa on String-olioina kaikki osoitteet, joista yhteydenotot palvelimelle on kielletty.

 

Paluuarvo:

Vector Vector joka sisältää String-olioita.

 

4.11.3.3 getMaxIdleTime()

Palauttaa tiedon kuinka monta sekuntia käyttäjä saa palvelimella olla kirjoittamatta yhtään viestiä.

 

Paluuarvo:

int Aika sekunteina

 

4.11.3.4 getMaxUsers()

Palauttaa tiedon kuinka monta keskustelijaa palvelimella voi yhtäaikaa olla.

 

Paluuarvo:

int Keskustelijoiden maksimimäärä

 

4.11.3.5 getPastMessageCount()

Palauttaa tiedon kuinka monta vanhaa viestiä uusille keskustelijoille näytetään.

Paluuarvo:

int Viestien määrä

 

4.11.3.6 getServerAddress()

Palauttaa palvelimen osoitteen

 

Paluuarvo:

String Palvelimen osoite merkkijonona.

 

4.11.3.7 getServerPortInt()

Palauttaa palvelimen kuunteleman portin kokonaislukuna

 

Paluuarvo:

Int Palvelimen portti Integer muodossa

 

4.11.3.8 isAddressBanned(String)

Palauttaa tiedon onko parametrina annettu osoite kieltolistalla.

 

Parametrit:

String IP-osoite merkkijonona muodossa ###.###.###.###

 

Paluuarvo:

Boolean Oliko osoite kieltolistalla

 

4.11.3.9 isAdminCall()

Palauttaa tiedon onko ylläpitäjä kutsuttavissa keskusteluun

 

Paluuarvo:

Boolean Onko ylläpitäjä kutsuttavissa keskusteluun

 

4.11.3.10 isAutoVbookAccept()

Palauttaa tiedon hyväksytäänkö vieraskirjamerkinnät automaattisesti

 

Paluuarvo:

Boolean Hyväksytäänkö vieraskirjamerkinnät automaattisesti

 

4.11.3.11 isDatingStyleChat()

Palauttaa tiedon kysytäänkö keskustelijoilta ikää ja sukupuolta, kun he kirjautuvat keskusteluun.

 

Paluuarvo:

boolean Tieto kysytäänkö ikää ja sukupuolta

 

4.11.3.12 loadSettings()

Lataa asetukset tiedostosta settings.dat. Tiedoston on oltava samassa hakemistossa, mistä palvelin on käynnistetty. Jos tiedostoa ei löydy, niin asetetaan oletusarvot.

 

4.11.3.13 removeAllBannedAddreses()

Tyhjentää koko kieltolistan.

 

 

 

4.11.3.14 saveSettings()

Tallentaa asetukset settings.dat tiedostoon, samaan kansioon josta palvelin käynnistettiin.

 

4.11.3.15 setAddressBanned(String)

Lisää osoitteen kieltolistalle

 

Parametrit:

String IP-osoite merkkijonona muodossa ###.###.###.###

 

4.11.3.16 setAddressUnBanned(String)

Poistaa kieltolistalta yhden osoitteen.

Ei tarkista osoitteen oikeaa muotoa.

 

Parametrit:

String Osoite joka poistetaan

 

Paluuarvo:

boolean Onnistuiko poisto

 

4.11.3.17 setAdminCall(boolean)

Asettaa asetuksen onko ylläpitäjä kutsuttavissa keskusteluun

 

Parametrit:

boolean true/false Päälle/Pois

 

4.11.3.18 setAutoVbookAccept(boolean)

Asettaa automaattisen vieraskirjaviestin hyväksymisen

 

Parametrit:

boolean true/false Päälle/Pois

 

4.11.3.19 setDatingStyleChat(boolean)

Asettaa sukupuolen ja ikä kyselyn päälle/pois

 

Parametrit:

boolean true/false Päälle/Pois

 

4.11.3.20 setMaxIdleTime(int)

Asettaa ajan sekunteina kuinka kauan keskustelija saa olla palvelimella lähettämättä yhtään viestiä.

 

Parametrit:

Int Aika sekunteina

 

4.11.3.21 setMaxUsers(int)

Asettaa keskustelijoiden maksimimäärän

 

Parametrit:

Int Keskustelijoiden maksimi määrä

 

4.11.3.22 setPastMessageCount(int)

Asettaa viestien määrän, jotka näytetään uusille keskustelijoille

 

Parametrit:

Int Viestien määrä

 

4.11.3.23 setServerAddress(String)

Asettaa palvelimen osoitteen

 

Parametrit:

String Palvelimen osoite

 

4.11.3.24 setServerPort(String)

Asettaa palvelimen portin

 

Parametrit:

String Palvelimen portti

 

4.12 AdminMainFrame

4.12.1 Yleiskuvaus

Käyttöliittymän ikkuna sisältää Menu valikon, josta pääsee käsiksi kaikkiin palvelimentoimintoihin.
Luokassa luodaan kaikki muut käyttöliittymän ikkunat, ja välitetään niille, kaikki tarvittavat viitteet olioihin jotka Server luokka on luonut.
Tämän ikkunan sulkemalla saa myös palvelimen suljettua.

 

4.12.2 Rajapinta yleisesti

Luokan rajapinnan ainoa julkinen metodi on callAdmin, jota vain Server luokka tarvitsee.

 

4.12.3 Rajapintametodit

4.12.3.1 AdminMainFrame(ServerSettings, Users, VisitorsBook)

Rakentaja joka saa Server luokalta viittaukset tämän luokan tarvitsemiin palveluihin.
Alustetaan ikkunan näkyvät komponentit

 

Parametrit:

ServerSettings Palvelimenasetukset luokanolio

Users Users luokanolio, joka pitää sisällään kaikkien keskusteluun kirjautuneiden käyttäjien tiedot

VisitorsBook VisitorsBook luokanolio joka pitää sisällään koko vieraskirjan

 

4.12.3.2 callAdmin(String)

Näyttää dialogin, jossa on kutsu ylläpitäjälle liittyä keskusteluun.

 

Parametrit:

String Keskustelijan nimimerkki, joka on kutsun lähettänyt.

 

4.13 ServerSettingsFrame

4.13.1 Yleiskuvaus

Käyttöliittymänikkuna palvelimenasetusten muuttamiseen. Luokka hakee asetukset ja palauttaa muuttuneet asetukset ServerSettings luokalle.

 

4.13.2 Rajapinta yleisesti

Luokalla ei ole yleiskäyttöisiä rajapintametodeita.

 

4.13.3 Rajapintametodit

4.13.3.1 ServerSettingsFrame(ServerSettings)

Rakentaja, joka luo ikkunan komponentit ja päivittää asetukset näytölle

 

Parametrit:

ServerSettings Viittaus ServerSettings-olioon jonka Server luokka on tehnyt

 

4.14 BannedAddressesFrame

4.14.1 Yleiskuvaus

Käyttöliittymän ikkuna osoitteiden lisäämiseksi IP-Porttikieltolistalle.
Kieltolistalla olevista osoitteista ei voi ottaa yhteyttä palvelimelle.
Kieltolistalle lisättävät osoitteet on oltava numeerisia IP-osoitteita, eli muotoa ###.###.###.###

 

4.14.2 Rajapinta yleisesti

Luokalla ei ole yleiskäyttöisiä rajapinta metodeita.

 

4.14.3 Rajapintametodit

4.14.3.1 BannedAddressesFrame(ServerSettings)

Rakentaja joka alustaa ikkunan valmiiksi

 

Parametrit:

ServerSettings Viittaus ServerSettings olioon jonka Server luokka on tehnyt

 

 

4.15 ChatFrame

4.15.1 Yleiskuvaus

Käyttöliittymän ikkuna keskustelun seuraamiseen, ja ylläpidollisten viestien lähetykseen kaikille keskustelijoille.
Viestit tulevat tähän ikkunaan vaikka ikkunaa ei olisi vielä avattu näkyviin.

 

4.15.2 Rajapinta yleisesti

Server luokka kutsuu metodia updateM(String), jolla se välittää muiden keskustelijoiden viestit tähän ikkunaan.

 

4.15.3 Rajapintametodit

4.15.3.1 ChatFrame(Users)

Rakentaja, joka alustaa ikkunan käyttövalmiiksi.

 

Parametrit:

Users Users luokanolio johon on tallennettu kaikki paikalla olevat käyttäjät.

 

4.15.3.2 updateM(String)

Tätä metodia kutsutaan Server luokan realyMsgToAdmin-metodista. Sen tehtävänä on välittää kaikki keskustelu viestit tähän ikkunaan, ja tulostaa sen tekstikenttään.

 

Parametrit:

String Viesti

 

 

4.16 OnlineUsersFrame

4.16.1 Yleiskuvaus

Käyttöliittymänikkuna josta näkee keskustelussa paikalla olevat henkilöt, ja voi poistaa häiriköt keskustelusta.
Paikalla olevan keskustelijan IP-osoitteen voi myös lisätä IP-porttikieltolistalle.

 

4.16.2 Rajapinta yleisesti

Luokalla ei ole yleiskäyttöisiä rajapintametodeita.

 

4.16.3 Rajapintametodit

4.16.3.1 OnlineUsersFrame(Users, ServerSettings)

Rakentaja alustaa ja järjestelee ikkunan komponentit.

 

Parametrit:

Users Viittaus Users-olioon, jonka Server luokka omistaa.

ServerSettings Viittaus ServerSettings-olioon, jonka Server luokka omistaa.

 

4.17 VBookFrame

4.17.1 Yleiskuvaus

Käyttöliittymän ikkuna vieraskirjamerkintöjen hyväksymiseen, poistamiseen ja selailuun.
Luokka käyttää VisitorsBook luokkaa tietojen hakemiseen ja tallentamiseen.

 

4.17.2 Rajapinta yleisesti

Luokalla ei ole yleiskäyttöisiä rajapintametodeita.

 

4.17.3 Rajapintametodit

4.17.3.1 VBookFrame(VisitorsBook)

Rakentaja jossa suoritetaan ikkunan alustustoimenpiteet

 

Parametrit:

VisitorsBook Viittaus VisitorsBook luokanolioon

 

 

4.18 LogFrame

4.18.1 Yleiskuvaus

Käyttöliittymän ikkuna joka näyttää palvelimen lokitiedot, ja mahdollistaa lokitiedon tyhjennyksen.

 

4.18.2 Rajapinta yleisesti

Luokalla ei ole yleiskäyttöisiä rajapintametodeita.

 

4.18.3 Rajapintametodit

4.18.3.1 LogFrame()

Rakentaja joka alustaa ikkunan käyttövalmiiksi

 

5 Toiminnot

5.1 Yleistä

5.2 Toiminnot Palvelimen pitäjälle

5.2.1 C&VServer Pääikkuna

Ikkuna sisältää menu valikon, josta pääsee käyttämään kaikkia palvelimentoimintoja. Valikoilla on näppäin oikopulut.

 

5.2.1.1 Palvelimen sulkeminen

Palvelimen voi sulkea ”Tiedosto/Sulje palvelin” valikosta, tai sulkemalla pääikkunan.

Yritettäessä sulkea ikkunaa, tulee varmistuskysymys, jossa kysytään halutaanko sulkea palvelin, vai vain piilottaa käyttöliittymä. Käytettäessä valikkoa, sulkemiseen, siitä ei kysytä varmistusta.

 

5.2.1.2 Käyttöliittymän sulkeminen.

Käyttöliittymä voidaan sulkea, valikosta ”Tiedosto/Sulje käyttöliittymä”, tällöin ohjelma sulkee kaikki avoinna olevat ikkunat, ja vapauttaa niiden käyttämää muistia. Asiasta kysytään varmistus, koska ikkunoita ei saa enää auki, kun ne on suljettu.

 

5.2.2 Palvelimen asetukset

Valikko: Asetukset/Palvelimen asetukset

Asetusikkunassa on tekstialueita ja valintaruutuja, asetukset voi hylätä, tai hyväksyä ja tallentaa, näitä varten on kaksi nappia.  Kun ”Hyväksy ja tallenna muutokset” nappia painetaan, tarkistetaan kaikkien valintojen oikeellisuus ja tarvittaessa pyydetään käyttäjää korjaamaan tiedot. ”Hylkää” napilla ikkuna suljetaan ja mitään muutoksia ei tehdä.

 

5.2.2.1 Palvelimen osoite

Palvelimen osoite voidaan antaa joko IP-osoitteena tai nimiosoitteena. Osoitetta käytetään html-sivujen luonnissa, jossa se lisätään kaikkien linkkien alkuun. Osoitetta ei tarkisteta, koska se voi olla monen muotoinen ja tarkistuksia tulisi turhan paljon, sallitut osoite mallit kirjataan palvelimen ohjekirjaan.

 

5.2.2.2 Palvelimen portti.

Palvelimen portti on numero välillä 1-65535. Portti lisätään myös html-sivuihin osoitteen perään. Sitä käytetään myös käynnistettäessä, palvelinta, antamaan kuunneltava portti. Tämän takia palvelin on käynnistettävä uudelleen, jos porttia on muutettu.

 

5.2.2.3 Keskustelijoiden maksimimäärä

Luku välillä 1-99. Määrittää kuinka monta keskustelijaa voi palvelimella yhtäaikaisesti olla, jos palvelin on täynnä näytetään uusille tulijoille siitä ilmoitus.

 

5.2.2.4 Montako vanhaa viestiä näytetään uusille tulijoille.

Luku välillä 1-99. Viestien määrä jonka keskustelijat näkevät tullessaan mukaan keskusteluun. Liian suuri arvo täyttää keskustelijan ruudun sekavan näköiseksi.

 

5.2.2.5 Montako minuuttia palvelimella saa olla lähettämättä yhtään viestiä.

Luku välillä 1-99. Palvelin heittää käyttäjät automaattisesti pois, jos he ovat olleet lähettämättä viestiä tarpeeksi usein. Ulosheitto tapahtuu vasta, kun joku toinen tulee keskusteluun sisälle, koska uutta tilaa palvelimelle ei ennen tarvita.

 

5.2.2.6 Otatko vastaan kutsuja keskusteluun

Valintaruutu, Kyllä/Ei. Jos tämä asetus on valittu, niin keskustelija voi selaimestaan, painaa nappia, ja palvelimen ylläpitäjälle avautuu ikkuna, johon tulee kehotus liittyä keskusteluun, mukaan, sekä pyytäjän nimimerkki.

 

5.2.2.7 Kysytäänkö keskustelijalta ikää ja sukupuolta

Valintaruutu Kyllä/Ei. Tämä valinta vaikuttaa siihen, näytetäänkö keskustelijalle, sisään kirjauduttaessa kysymys iästä ja sukupuolesta. Jos valinta on tehty niin tiedot näkyvät myös käyttäjän listatessa muiden käyttäjien tiedot.

 

5.2.2.8 Hyväksytäänkö kaikki vieraskirja merkinnät automaattisesti

Jos tämä kohta on valittu niin ylläpitäjän ei tarvitse hyväksyä käyttäjien lähettämiä vieraskirjamerkintöjä, vaan ne ilmestyvät kaikkien nähtäville heti kun ovat palvelimelle tulleet.

 

5.2.3 Osoite kieltolista.

 

Valikko: Asetukset/Osoite kieltolista

Tästä ruudusta näkee tiedot niistä osoitteista, joista tulevat yhteydet palvelin hylkää. Osoitteita  voi lisätä joko tästä ruudusta tai sitten ”Toiminnot/Paikalla olevat käyttäjät” valikon kautta. Palvelin ei tallenna näitä tietoja, vaan ne katoavat palvelimen sulkeutuessa.

 

 

 

5.2.3.1 Poista osoite

Tämä toiminto poistaa listasta osoitteen. Osoite ”maalataan” hiirellä, ja painetaan ”Poista osoite” nappia. Jos hiirellä maalattu alue ei ole osoite, vaan siihen on otettu mukaan esimerkiksi rivinvaihto, annetaan käyttäjälle virheilmoitus.

 

5.2.3.2 Poista kaikki merkinnät

Poistaa kaikki osoitteet listasta, jos listassa ei ole osoitteita niin ei tehdä mitään.

 

5.2.3.3 Lisää osoite

Osoite annetaan tekstikenttään, ja sen oikeellisuus tarkistetaan, jos osoite on väärää muotoa niin annetaan virheilmoitus. Osoitteen on oltava numeerinen IP-osoite.

 

5.2.4 Keskustelun seuraaminen

 

Valikko: Toiminnot/Keskustelun seuraaminen

Tähän ikkunaan tulevat kaikki keskustelun viestit, paitsi ne jotka keskustelijat ovat lähettäneet toisilleen yksityisesti. Ikkunassa on myös tekstikenttää, josta voi lähettää viestejä kaikille käyttäjille. Nimimerkiksi niihin tulee aina ”Ylläpitäjä” ja tekstin väri on eri kuin muiden lähettämillä viesteillä. Ylläpidolliset viestit on tarkoitettu ilmoittamaan keskustelijoita vaikkapa palvelimen sulkeutumisesta tai häiriköitä voi pyytää lopettamaan häiriköinnin.

 

5.2.5 Paikalla olevat käyttäjät

 

Valikko: Toiminnot/Paikalla olevat käyttäjät

Ikkunassa on taulukko, jossa näkyvät kaikkien kirjautuneiden keskustelijoiden tiedot. Tietoja ovat: Nimimerkki, ikä, Sukupuoli, Aika viimeisestä viestistä, Koko keskustelussa vietetty aika, Kuinka monta viestiä on lähetetty, ID Numero, IP-Osoite. Lista päivittyy automaattisesti.

 

5.2.5.1 Käyttäjän poistaminen keskustelusta

Käyttäjän voi poistaa keskustelusta, valitsemalla taulukosta oikea rivi, ja painamalla ”poista keskustelusta” nappia. Keskustelijan yhteys katkaistaan, mutta hän voi tulla kirjautua heti uudestaan, keskusteluun.

 

5.2.5.2 Osoitteen kielto

Jos ulosheitto ei auta, niin käyttäjän ip-osoitteen voi lisätä kieltolistalle. Silloin tästä osoitteesta tulevat yhteys pyynnöt hylätään, myös kirjautumis-sivulle ja vieraskirjaan. Jos ip-osoite oli välityspalvelimen osoite, niin kaikki sen takaa tulevat yhteydet kielletään myös. Kiellot voi poistaa valikosta Asetukset/Osoite kieltolista.

 

5.2.6 Vieraskirjamerkinnät

 

Valikko: Toiminnot/Vieraskirjamerkinnät

 

Tässä käyttöliittymä ikkunassa voi katsella ja hyväksy vieraskirjaan tulleita viestejä. Viestiteistä näkyvät päiväys, nimimerkki, ja itse viesti, jokainen omissa tekstikentissään. Ikkunassa on selaus napit, sekä viestien poisto ja hyväksyntä napit. Viestit on jaettu kolmeen ryhmään, hyväksytyt, hyväksymättömät ja ylläpidolle tarkoitetut. Näistä valitaan valintaruuduilla, mitä ryhmää ollaan selaamassa. ”Hyväksy merkintä” nappi on aktiivinen vain, kun on valittu selattavaksi hyväksymättömiä viestejä.. Ruudussa on myös tieto siitä kuinka monta viestiä näytettävässä ryhmässä on.

 

5.2.7 Palvelimen lokitiedot

 

Valikko: Toiminnot/Palvelimen lokitiedot

 

Palvelimen tallentamia erilaisia tiedotteita ja vieheilmoituksia voi seurata tästä ikkunasta. Jokaiseen tiedotteeseen tallentuu päivämäärä, kellonaika, virheen vakavuus sekä itse ilmoitus teksti. Nämä tiedot näkyvät yhdellä rivillä, jotka näytetään tekstialueella.  Ikkunassa on kaksi nappia, toinen päivittää näytön ja toinen tyhjentää lokitiedoston levyltä. Lokitiedosto on tallennettu sovelluksen käynnistys hakemistoon ja on nimeltään ”log.dat”. Tiedosto on selväkielisessä teksti muodossa, jotta ylläpitäjä voi halutessaan tulostaa sen, jollain muulla ohjelmalla. Tyhjennys nappia painettaessa, pitää tulla varmistus kysymys.

 

 

5.3 Toiminnot selaimelle

 

 

5.3.1 Tervetuloasivu

 

Tälle sivulle pääsee kun kirjoittaa selaimen osoitteeksi pelkän palvelimen osoitteen, tai sitten pyytää mitä tahansa sivua, vaikka index.html.