|
| Programmering af en chat i java Fra : Brian O |
Dato : 01-08-07 18:11 |
|
Hejsa
For at få noget øvelse i at lave noget brugbart i java, så har jeg
kastet mig over et projekt med at lave en simpel chat.
Jeg kan godt bruge lidt gode råd om hvordan det skal gribes an.
Jeg har en simpel client der tager en adresse (TCP/IP), en port og en
besked som parametre. Dertil har jeg en simpel server der lytter på en
given port og returnerer eventuelle beskeder.
Når flere brugere skal koble sig på, så skal jeg på en måde få
distribueret en besked til alle - og samtidig holde styr på hvem der
er online. Vil den bedste fremgangsmåde være at bruge et
OBSERVER-pattern -> i så fald, hvordan bruger jeg så en actionlistener
over en net-forbindelse.
Jeg har også forestillet mig en løsning, hvor clienten abonnerer fra
serveren, der så distribuerer beskeder til alle abonnenter
Vil det være smart eller skabe for megen trafik hvis jeg lavede en
klasse, der repræsenterede hver enkelt linie og hvordan sender jeg den
frem og tilbage? - Hvad kunne være et godt alternativ -> XML?
Håber at i kan komme med lidt input til mig
Hilsen
Brian
| |
Thorbjørn Ravn Ander~ (01-08-2007)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 01-08-07 18:20 |
|
Brian O <mailFJE@RNoddball.dk> writes:
> Jeg kan godt bruge lidt gode råd om hvordan det skal gribes an.
Jeg vil foreslå dig at du vælger en chatprotokol der allerede findes
enten en klient eller en server til, og så lav den del du synes er
sjovest.
Herved får du protokollen dokumenteret - det gør den nemmere at
implementere - og du formindsker fejlkilder, da du kan afgrænse det
meget mere når det kun er den ene ende du retter i af gangen.
--
Thorbjørn Ravn Andersen
| |
Michael Rasmussen (01-08-2007)
| Kommentar Fra : Michael Rasmussen |
Dato : 01-08-07 18:40 |
|
On 01 Aug 2007 19:20:01 +0200
nospam0000@gmail.com (Thorbjørn Ravn Andersen) wrote:
>
> Jeg vil foreslå dig at du vælger en chatprotokol der allerede findes
> enten en klient eller en server til, og så lav den del du synes er
> sjovest.
>
Eller læse Deitel & Deitel: Java how to program. Kapitlet om netværk
har et eksempel på en multi-user messenger.
--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.
| |
Thorbjørn Ravn Ander~ (01-08-2007)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 01-08-07 19:17 |
|
Michael Rasmussen <mir@miras.org> writes:
> Eller læse Deitel & Deitel: Java how to program. Kapitlet om netværk
> har et eksempel på en multi-user messenger.
Man skal ikke tage så store skridt at bukserne revner.
--
Thorbjørn Ravn Andersen
| |
Brian O (01-08-2007)
| Kommentar Fra : Brian O |
Dato : 01-08-07 23:24 |
|
>>
>Eller læse Deitel & Deitel: Java how to program. Kapitlet om netværk
>har et eksempel på en multi-user messenger.
Jeg er desværre ikke i besiddelse af ovennævnte bog, men på forlagets
hjemmeside lykkedes det mig at finde eksemplerne fra boger - og også
koden til messengeren. Det vil jeg lige prøve at kigge lidt nærmere på
/Brian
| |
Michael Rasmussen (02-08-2007)
| Kommentar Fra : Michael Rasmussen |
Dato : 02-08-07 14:12 |
|
On Thu, 02 Aug 2007 00:24:21 +0200
Brian O <mailFJE@RNoddball.dk> wrote:
>
> Jeg er desværre ikke i besiddelse af ovennævnte bog, men på forlagets
> hjemmeside lykkedes det mig at finde eksemplerne fra boger - og også
> koden til messengeren. Det vil jeg lige prøve at kigge lidt nærmere på
>
Hvis du bor i København, kan Handelshøjskolens bibliotek anbefales. De
har en velassorteret afdeling for computer litteratur.
--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.
| |
Arne Vajhøj (02-08-2007)
| Kommentar Fra : Arne Vajhøj |
Dato : 02-08-07 21:29 |
|
Brian O wrote:
> For at få noget øvelse i at lave noget brugbart i java, så har jeg
> kastet mig over et projekt med at lave en simpel chat.
>
> Jeg kan godt bruge lidt gode råd om hvordan det skal gribes an.
>
> Jeg har en simpel client der tager en adresse (TCP/IP), en port og en
> besked som parametre. Dertil har jeg en simpel server der lytter på en
> given port og returnerer eventuelle beskeder.
>
> Når flere brugere skal koble sig på, så skal jeg på en måde få
> distribueret en besked til alle - og samtidig holde styr på hvem der
> er online. Vil den bedste fremgangsmåde være at bruge et
> OBSERVER-pattern -> i så fald, hvordan bruger jeg så en actionlistener
> over en net-forbindelse.
>
> Jeg har også forestillet mig en løsning, hvor clienten abonnerer fra
> serveren, der så distribuerer beskeder til alle abonnenter
>
> Vil det være smart eller skabe for megen trafik hvis jeg lavede en
> klasse, der repræsenterede hver enkelt linie og hvordan sender jeg den
> frem og tilbage? - Hvad kunne være et godt alternativ -> XML?
>
> Håber at i kan komme med lidt input til mig
Jeg antager at dit program ikke skal supportere tusinder af samtidige
brugere og at det er OK hvis alt er tabt hvis serveren går ned - det
gør chat lidt nemmere at implementere.
Det nemmeste må være:
- en multithreaded server med en thread per client
- hver client thread læser i en loop
- der vedligeholdes en liste f.eks. ArrayList<Client> med alle clients
- den liste bruges når der skal sendes til alle
- der bruges synchronized til at undgå data korruption ved skrivning
Arne
| |
|
|