Avatar billede quiw Nybegynder
26. juli 2011 - 21:18 Der er 5 kommentarer og
1 løsning

Server som IKKE er multithreaded.

Goddag eksperter.
Jeg vil gerne lave en server applikation, der kan håndtere flere klienter på samme tid. Jeg ønsker dog ikke at lave en multithreaded server, da det de forrige gange har forårsaget en masse concurrency problemer for mig. Desuden skulle det være mere effektivt at undlade for mange threads.

Jeg har forsøgt at google, men der kommer ikke andet end multithreaded eksempler op, og jeg ved ikke umiddelbart hvad jeg skal lede efter. Findes der noget standard i java, eller hvordan løses dette? Eventuelt links, tutorials, guides?

På forhånd tak.
Avatar billede quiw Nybegynder
26. juli 2011 - 21:20 #1
Er det dét, som man også kalder et "Socket Wheel"?
Avatar billede arne_v Ekspert
26. juli 2011 - 21:22 #2
Der er rigtigt at en traad per klient ikke skalerer godt - formentligt boer den ikke bruges for mere end nogle hundreder klienter,

En traad per klient er den nemmeste programmerings model. Det bliver vanskeliger emed en anden model.

Det du skal kigge paa i Java er NIO og select.
Avatar billede arne_v Ekspert
26. juli 2011 - 21:23 #3
Jeg antager at vi snakker en custom TCP forbindelse ikke noget standard HTTP.
Avatar billede quiw Nybegynder
26. juli 2011 - 21:42 #4
Yes, korrekt. Jeg forsøger mig med et lille spil (en lille mand der løber rundt på et kort), som jeg nu vil gøre "multiplayer". Jeg bruger XML til at udveksle data mellem server/klient (for at gøre det mere overskueligt, hvis jeg i fremtiden laver klienter i andre sprog, som f.eks Flash).

Jeg vil lige researche lidt på NIO og select i løbet ad aftenen, så vender jeg tilbage igen :) Kan du anbefale nogle links, tutorials eller super simple eksempler?
Avatar billede arne_v Ekspert
26. juli 2011 - 22:08 #5
Nej.

Men der er masser af Google hits paa:
  java nio socket select
Avatar billede arne_v Ekspert
11. september 2011 - 23:36 #6
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester