Java Klient / Server - Några tips? [LÖST]

Här diskuteras programmering och utveckling
TKEE
Inlägg: 9
Blev medlem: 10 feb 2009, 22:53
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS

Java Klient / Server - Några tips? [LÖST]

Inlägg av TKEE »

Jag utvecklar ett chat-program i Java, med NetBeans IDE 6.1 - Virtuell Editor. Nu kommer jag till själva koden för Klient / Server. Min tanke är att jag startar Server-versionen av mitt program, där det finns en lista som visar vilka klienter som ansluter till servern. Dem klienterna ska kunna öppna som en session med varandra där dem kan chatta och även dela med sig av filer, lite som "delad mapp" i MSN.
Men mitt problem är att jag inte hittar några bra tutorials för just chatprogram i Java, så jag undrar om någon har något tips på bra sidor där jag kan läsa om ämnet ? Hällst på svenska.
Jag har hittat några sidor, men dem är på engelska och det är mer en färdig kod bara. Jag skulle vilja få mer inblick i hur det fungerar och vilka funktioner det finns i java.net och hur man använder dem, efterssom det är första gången jag ger mig in i "nätverks programmering".
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Java Klient / Server - Några tips?

Inlägg av Osprey »

Nu har jag inte skrivit så mycket nätverksprogram i just Java, men däremot allt möjligt inklusive protokollstackar i C...

En sak du ska tänka på är att inte transportera data över nätet i onödan, eftersom detta drar ner prestanda väldigt mycket. Se alltså till att både klient och server har så mycket data och kod lokalt som möjligt. Ett av de svåraste problemen när det gäller nätverksprogrammering är just felhanteringen, som till slut brukar utgöra nästan 80% av koden. Det gäller alltså att hantera vad klienten ska göra när servern inte svarar och vad servern ska göra när klienten inte hörts av på flera minuter. Där tillkommer också problem som att vad gör man när klienten har skickat ett paket till servern och svaret inte kommer, hur gör man då om man utgår från att paketet försvunnit på nätet och man gör omsändning - och efter ett tag kommer ändå det första paketet tillbaka och både klient och server befinner sig "svävande ute i rymden" vad gäller tillståndstabeller.

Jag tror att det du ska sätta in dig i ordentligt först är vad nätverksprogrammering innebär, Java i sig är nog ett av de mindre problemen i det hela...

Fast nåväl, jag har erfarenhet av nätverksprogrammering i C och Assembler, så det kanske är lättare i Java...? :)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
TKEE
Inlägg: 9
Blev medlem: 10 feb 2009, 22:53
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS

Re: Java Klient / Server - Några tips?

Inlägg av TKEE »

Okej. Jag kan inte tänka mig att den felhnateringen inte behövs i Java, så det är nog inte så mycket enklare. :(
Nu måste jag bara hitta någonstanns jag kan läsa om nätverksprogrammering, du vet ingen sida / bok kanske? Det behöver ju kanske inte vara Java riktat- det borde ju vara samma struktur över hur det fungerar oavsett programspråk?
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Java Klient / Server - Några tips?

Inlägg av Osprey »

Det mesta är nog ungefär samma eller iallafall liknande oavsett vilket språk eller vilket protoll/nät man använder, eftersom problematiken och funktionen hur som helst är ungefär samma.

Eftersom du ska skriva i Java så är det ju bra om du kan hitta något om det, men annars är ju inte C/C++ så där tvärolikt heller. Prova med att söka på nätet efter "Java TCP/IP" så kan du nog hitta en hel del. Jag skulle tro att det är en bra början och om det dyker upp fler frågor (vilket det säkert gör) så är det ju bara att ställa dem här, det finns ju en hel del här som kan Java också... :)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
TKEE
Inlägg: 9
Blev medlem: 10 feb 2009, 22:53
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS

Re: Java Klient / Server - Några tips?

Inlägg av TKEE »

Okidoki! tack för hjälpen! :)
diwic
Inlägg: 96
Blev medlem: 27 jan 2008, 12:54
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Kontakt:

Re: Java Klient / Server - Några tips?

Inlägg av diwic »

Osprey skrev:Där tillkommer också problem som att vad gör man när klienten har skickat ett paket till servern och svaret inte kommer, hur gör man då om man utgår från att paketet försvunnit på nätet och man gör omsändning - och efter ett tag kommer ändå det första paketet tillbaka och både klient och server befinner sig "svävande ute i rymden" vad gäller tillståndstabeller.
Tja, om man använder TCP (vilket de allra flesta protokoll gör) så använder man sig inte av omsändningar, för det är inbyggt i TCP.

Annars är det väl inte klurigare än att bägge sidor skickar dummypaket med visst antal sekunders mellanrum. Och har man inte fått ett dummypaket på (förslagsvis) dubbla tiden så antar man att andra sidan har "dött" och stänger ner anslutningen. Och om man är klient försöker man eventuellt koppla upp igen. Så har det sett ut i de allra flesta protokoll jag har tittat på åtminstone.

TKEE: det första du bör ta ställning till är om det är enklast att använda "blocking sockets" eller "non-blocking sockets", eftersom det påverkar rätt mycket av din nätverksprogrammering. Finns säkert guider om detta på nätet...
Skriv svar

Återgå till "Programmering och webbdesign"