Piff och Puffs Chatsystem



Relevanta dokument
Projekt i Nätverksprogrammering. MegaNet Handledare: Pierre Nugues

Projektrapport EDA095

Åtkomst och användarhandledning

EDA095 Nätverksprogrammering

Hidden Camera App. Realtidsprogrammering EDA040. Joakim Svensson (dt05js8) Torbjörn Lundberg (dt05tl3) Henrik Andersson (dt05ha1)

Realtid. eda040project2010 MANUAL. - Christoffer Olsson. - Daniel Lehtonen

Manual för deltagare kursen Bakgavellyft Så går du kursen Bakgavellyft

Kommunikationsmöjligheter i Mondo

Webbokning / ExorLive Manual DL SOFTWARE

Projektarbete 2: Interaktiv prototyp

En handledning för studerande på Högskolan Kristianstad

Webbstudieplatsen Moodle

Lathund GUL Lärare. Allmänt. Hur du presenterar Dig själv för kursdeltagarna. Hur du lägger upp din kontaktlista

Inledning. Att bli medlem

Dela, samarbeta, byt. Bruksanvisning för administratörer

Personas, Scenarier och Kravspecifikation

Blackboard Learn v. 9.1

Manual för Kalmar kommuns Nya intranät. piren.kalmar.se

Så här gör du för att lägga till nytt e-postkonto i Windows 8. Öppna E-post från startskärmen.

Installationsanvisningar HogiaLön Plus

Grupphantering i Blackboard

Nätverksprogrammering, EDA095

Innehållsförteckning. Manual WebCT

Installationsanvisningar HogiaLön Plus

Malmö stad Fritidsförvaltningen. Att hantera närvarokort - Föreningsadministratör

Classfronter Vägledning för Studenter (version 1.1)

[MANUAL TILL LUVITS GRUNDFUNKTIONER]

FÖRBEREDANDE INSTÄLLNINGAR INFÖR SKYPE MÖTE SAMORDNAD VÅRD- OCH OMSORGSPLANERING

Frågebanker, frågeuppsättningar och slumpvisa block

En guide till FirstClass

Lathund. Fakturering via fil i Tandvårdsfönster

Telia Touchpoint Plus. Användare

Lära känna skrivbordet

Att komma igång med FirstClass (FC)!

IBM SmartCloud for Social Business. IBM SmartCloud Engage och IBM SmartCloud Connections Användarhandbok

Projektrapport. MegaLoad. Nätverksprogrammering EDA

Ändra, kopiera eller radera publikation (staff)

Skolplattformens pedagogiska verktyg och startsida en guide

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

Laboration 2: Ett kommunikationssystem

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Söka föreningsbidrag på webben

Avser Utgåva: Datum Sida: Primula Extern del PA (17) Dokumentbeskrivning : HANDBOK. Handbok PRIMULA. Primula Handbok för Vårdgivare

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

Användarmanual Skolrapport.se. Vårdnadshavare

Installation av. Vitec Online

DK-serien. Gör en fotobok med myphotobook.se

Lathund: Ansökan och redovisning i E-kanalen Energikartläggningsstödet

MANUAL NETALERT FÖR ANDROID VERSION 3.3

Användarmanual CallPad och VoicePad

Google Apps For Education

Ansökningsmanual för. Gruntvig Besök och utbyten

Komma igång med Eventor

VASS HBI Användarmanual

Hämta appar. Hämta appar innehåller information om vilka P&G-appar du behöver och hur du ställer in dem rätt.

Användarmanual Pagero Connect 2.0

Manual Invånaradministratör

Widgets i DynaMaster 5 Golf

FileCentral Desktop. Användarhandledning Version

Forskarstuderande. 1. Inloggning

Real-time requirements for online games

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

Steg 4 b. Molntjänster Onedrive Office 365 Windows 10. Mars -16 Liljedalsdata.se. Liljedalsdata Molntjänster En del av steg 4 Sida 1

NEO Speech. Trygghetstelefon. Användarmanual (SE)

Innehåll. Förändringar i v5.2

Dela in staden i lagom stora bitar

Handbok Simond. Peter H. Grasch

För support videos, webinstruktioner och mer information besök oss på

ÅGIT PRESENTERAR FILR SMIDIG OCH SÄKER FILÅTKOMST OCH DELNING

SCHOLA COMAI ELEV WEBBKALENDER / SCHEMA VERSION 1.1. [Skriv text]

MBX Mobilapp. Inloggning. Mobilapplikationens huvudmeny. MBX Mobilapp

2 SPD - ett realtidsystem för distansundervisning

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Aditro HR Portalen - logga in och byta lösenord

App-klient för smartphones Power BI Arbetsflöde CRM Online Webb-klienten Dokumenthantering Molnet...

Introduktion - Svevac

Linuxadministration I 1DV417 - Laboration 4 Nätverk, DHCP, säkerhetskopiering, processhantering, Samba och NFS

IT för personligt arbete F2

Klicka på en sökrad för att få fram hänvisningar, fullständig information och möjlighet att skicka meddelande via e-post eller sms.

Svenska Skidförbundets tävlingsadministrativa system på IdrottOnline

Skolplattformens pedagogiska verktyg och startsida en guide

1 Översikt. 1.1 Koncept 1 (19) Tomas Rook Dokument typ Rev. Manual

Internettjänsten Skolmjölk

Lathund. Administratörshantering. Kapitalflytt ITPK

Guide Flytta / Kopiera / Ta bort en kategori

för att uppdatera dina produkter dagligen på LeGuide.com Groups webbplatser

Lumbago - Förord. Välkommen till Journalprogrammet Lumbago.

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

HexaFlip. Kravspecifikation

Uppdaterad Enkel manual tävlingsanmälan i friidrottens nya IT- system.

Välkommen som testpilot av plattformen PictureMyLife!

Artiklar via UB:s sö ktja nst

Projektrapport - Live commentary

Appar eller mobilwebb? Vad är bäst för bibliotekets tjänster?

VIDA ADMIN LATHUND INNEHÅLL

Va lkommen till Delfis statistikportal

ÖrebroCupen. Institutionen för Ekonomi, Statistik och Informatik, ESI Informatik, Klientprogrammering för webbsystem, 5 poäng

Användarmanual för kontaktpunkten på verksamt.se

Aktiviteter markeras som borttagna i databasen istället för att raderas

Webservice & ERP-Integration Rapport

Transkript:

Lunds Tekniska Högskola Piff och Puffs Chatsystem EDA095, Nätverksprogrammering - Projektrapport Gruppnummer: 1 Gruppmedlemmar: Alves-Martins, Rebecka adi10ral@student.lu.se Bredberg, Frida adifbr@student.lu.se Mattsson, Sofia dt07sm5@student.lth.se Stengren, Christoffer ada09cst@student.lu.se Handledare: Rasmus Barringer 2013-05-22

1 Bakgrund I denna rapport beskrivs ett projektarbete inom kursen Nätverksprogrammering, EDA095. Syftet med projektet är att får en djupare förståelse för och att praktiskt utöva de olika tekniker och metoder som nämnts under kursens gång. Som projektuppgift valde vi att implementera ett chatsystem där flera användare kan kommunicera med varandra och som bygger på att klienter kopplar upp sig mot en server via TCP. Vi har dessutom valt att lägga till peer-to-peer-chat samt möjligheten att skicka filer via chatsystemet. 2 Kravspecifikation Kraven vi ställde på att vårt chatsystem skulle uppfylla var peer-to-peer-kommunikation, dvs. att två personer chattar privat med varandra. Vi ville också att systemet skulle innehålla flera olika chatrum/diskussionsrum och det skulle finnas möjlighet att dynamiskt kunna skapa nya sådana. Den sista önskvärda funktionaliteten var att systemet skulle tillåta filöverföring. Våra krav för användargränssnittet var att man lätt skulle kunna skapa ett nytt chatrum och att man lätt skulle kunna inleda en ny chat med någon annan aktiv användare. Vi ville också att alla aktiva användares användarnamn skulle synas i ett fält i användargränssnittet. Varje ny chat ville vi skulle öppnas i en ny pop up-ruta för att användaren tydligt ska kunna orientera sig och se vilka olika konversationer man har uppe. Ett annat viktigt krav för vårt användargränssnitt var att användaren hela tiden ska kunna komma ångra sig och gå ett steg tillbaka eller avsluta. Vi valde därför att ha krav på att ha en Exit-knapp i alla fönster. 3 Modell Det protokoll vi valt att kommunicera via är TCP, eftersom det lämpar sig bättre vid realtidskommunikation i vårt fall eftersom det garanterar att meddelanden kommer fram, till skillnad från UDP. För varje chatrum som skapas en ny tråd på serversidan som bevakar om det kommer ett nytt meddelande. Detta för att sedan kunna skicka ut det till alla som är med i rummet. Servern har också en tråd för att kunna ta emot meddelande och göra det klienten frågar efter, samt skicka tillbaka svar på en förfrågan. För filöverförning skapas två nya trådar. En tråd som tar emot en fil för mottagarklienten och en tråd som skickar en fil för sändaren. Detta för att det parallellt ska gå att skicka meddelande när också en fil skickas. Tråden som tar emot använder sig av en serversocket och fungerar som en server medan den som skickar fungerar som en klient. Eftersom GUI:t fungerar som en tråd, dvs. när du klickar på en knapp händer något, behövs ingen tråd för att skicka meddelanden till servern. 2

3.1 Paket och klasser Nedan listas samtliga klasser och trådar. Client-package ChatClient.java Klass som tar emot meddelanden från server och avgör vad som ska hända. ChatClientSendThread.java Klass som skickar meddelanden till servern. FileReciever.java En tråd för att ta emot en fil. FileSender.java En tråd för att skicka en fil. Mailbox-package Mailbox.java Här lagras meddelandena som ska skickas ut till alla användare i samma chatrum. MailboxFTP.java Här lagras filerna som ska överföras. Server-package Chatrooms.java Beskriver chatrummens egenskaper och har hand om metoderna som påverkar dessa. ClientRepresentative.java Lyssnar på sin respektive klient och ser till att det klienten vill göra utförs. MailboxChecker.java Hanterar mailboxen och ser till att skicka vidare meddelanden. Server.java Öppnar en serversocket och accepterar klienter. GUI-package GUIchatroom.java Ett fönster som skapas för varje chatrum. GUIcreatechatroom.java Fönstret där man skapar nytt publikt chatrum. GUIlogin.java Loginrutan. GUIprivate.java Fönster för private chat, dvs. Peer-to-peer. GUIstartpage.java Startsidan där alla användare och rum som finns syns. 3

3.2 UML diagram UML diagram producerat med Green UML i Eclipse. 4

4 Användarhandledning Starta först en server genom att anropa jar-filen i en terminal. I Linux görs detta exempelvis med kommandot: java -jar Server.jar Starta sedan klienten på samma sätt fast med tillägget att ip-adressen till servern måste vara med, exempelvis: java -jar Client.jar 127.0.0.1 När man sedan startar chatsystemet ombeds man logga in med ett användarnamn. Det kommer sedan synas i listan över inloggade användare och blir alltså skärmnamnet. Därefter kommer man till startsidan, vilken består av två fönster som visar vilka chatrum som är aktiva, respektive vilka användare som är online. Under dessa finns knappar för vardera funktion som är möjlig i detta läge, dvs ansluta till ett redan befintligt chatrum, skapa ett nytt samt starta en privat (peer-to-peer) konversation med någon av de inloggade användarna. För vardera chatrum man startar öppnas ett nytt fönster. I en privat konversation är det möjligt att skicka en fil mellan de två användarna. Sändaren trycker på Send a file i ett private chatrum och väljer vilken fil den ska skicka. Mottagaren får en förfrågan om att acceptera eller neka filöverföringen. Om mottagaren väljer att acceptera måste denne spara filen. Viktigt att tänka på här är att den sparade filen måste ha samma filformat som den skickade. Det är i nuläget inte möjligt för mottagaren att välja var filen ska sparas utan det är redan förvalt att filen sparas i samma mapp som innehåller Client.jar-filen. Mottagaren får därefter en bekräftelse på att filöverföringen är genomförd. 5 Utvärdering Vi anser att vi lyckats uppfylla alla de krav vi ställde upp i början av projektet. Det krav vi hade svårast att uppfylla var filöverföringen. Användargränssnittets krav uppfylldes också. Dock ändrades designen något från vår grundskiss, men alla funktionskrav uppfylls. Det finns dock en del saker som kunde göras bättre och även en del småbuggar. Exempelvis får man ingen feedback när en fil skickas, utan detta görs i bakgrunden. För att lösa detta skulle man exempelvis kunna lägga till ett fönster som visar hur mycket av filen som är kvar att ladda ner. Ett annat exempel på en bugg i vårt system är om servern går ner, eller om man helt enkelt bara förlorar anslutningen till servern, stängs programmet ner direkt utan någon varning. Även här hade vi kunnat vara mer användarvänliga och gett feedback till användaren genom ett felmeddelande. Tyvärr upptäckte vi alldeles för sent att det inte går att skicka meddelanden med : i sig. Denna bugg beror på hur parsningen fungerar. Eftersom meddelanden använder sig av : för att dela på information, exempelvis meddelande:chattrumsnamn för att skicka meddelandet till ett chatrum, ställer detta till problem. Detta borde dock inte vara allt för svårt eller tidskrävande att lösa då det, som sagt, bara är parsningen som måste ändras. Liknande fel sker då man använder sig av kommatecken i konversationen, då syns, tyvärr, bara texten till vänster om kommatecknet medan texten till höger försvinner. 5

Projektet har varit mycket intressant och lärorikt. Möjligheten att få välja projekt själva fann vi vara mycket positivt eftersom man då kunde anpassa projektvalet efter sin egen grupps intresse, förmåga och ambitionsnivå. 6 Programlistor Projektets hemsida har följande url: http://piffopuffschat.hemsida24.se På hemsidan finns bland annat källkoden för projektet och denna projektrapport. 6