/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
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

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407841
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste