Avatar billede danielhep Nybegynder
06. februar 2003 - 10:50 Der er 13 kommentarer og
1 løsning

WinSock

Til en server skal man jo åbne/oprette eller lig en ny soc hver gang at der kommer en ny client.

jeg har noget kode her:
f.eks
//if client connect
int socket[65000]; //Max connections
i++;
socket[i]= socket(AF_INET, SOCK_STREAM, 0)

sådan noget lig, er det sådan at man henter en ny socket, eller er det helt forkert ??


mvh

Daniel
Avatar billede cyber_freak Nybegynder
06. februar 2003 - 11:16 #1
det er den paranormale verden, som er lig med den intergalaktiske cyklus der overlapper atomspaltningen ved en forbrænding af en molykylestruktur nedsmeltning.
Derfor er det nødvendigt at læse bogen om fugle og egern.
Avatar billede cyber_freak Nybegynder
06. februar 2003 - 11:16 #2
ej, det var bare mig og daniel der sad at legede
Avatar billede mcgoat Nybegynder
06. februar 2003 - 11:20 #3
ser meget rigtigt ud.. især hvis du kører en exit(0);
Avatar billede arne_v Ekspert
06. februar 2003 - 12:03 #4
Jeg er ikke helt med.

Normalt så fungerer en single-threaded server ved at den:

listen på server socket
while (connections) {
  lav accept og create en socket
  reply to client
  close socket
}

og en multi-threade server ved at den:

listen på server socket
while (connections) {
  lav accept og create en socket
  create thread med socket {
      reply to client
      close socket
  }
}

Ingen af delene kræver et socket[65000] array.

Vær iøvrigt opmærksom på at få systemer kan klare
så mange åbne sockets !
Avatar billede danielhep Nybegynder
06. februar 2003 - 14:39 #5
Arne_v >>

Hvad for en af de to typer er den mest hyppie at bruge til en server med anvændelse som chat  og filsendning ??

Mvh

Daniel
Avatar billede arne_v Ekspert
06. februar 2003 - 14:44 #6
Det må være den sidste en multi-threaded.

Med en single-threaded skal den første client være færdig-ekspederet
inden næste client kan start på at blive processet.

Chat må per definition skulle laves som en multi-threaded.

Fil-sending afhænger af kravene. Hvis der skal kunen være flere
samtidige brugere, så skal du også over i multi-threaded der.
Avatar billede danielhep Nybegynder
06. februar 2003 - 14:49 #7
Hvorfor skriver men "LP" foran når det faktisk bare er HOSTENT og det virker lige så godt uden "LP".. ??
LPHOSTENT lpHostEntry;
Avatar billede arne_v Ekspert
06. februar 2003 - 15:02 #8
Der er en vis tradition i Windows verdenen for at prefixe
navne med type.

Og en LPHOSTENT er vel en pointer til en HOSTENT.

Og L'et er et levn fra gamle dage (L=long/far).
Avatar billede danielhep Nybegynder
06. februar 2003 - 15:03 #9
Er det et krav at man gør det, fordi hvis jeg sætter mig ned til Unix ville jeg ikke skrive LP..har det noget betydning af vigtighed ?
Avatar billede arne_v Ekspert
06. februar 2003 - 15:04 #10
Det hedder ungarsk notation.

For alle prefixene se f.eks.:
  http://www.stanford.edu/class/cs193w/handouts/h04-naming.pdf
Avatar billede arne_v Ekspert
06. februar 2003 - 15:06 #11
Nej.

LPHOSTENT he;

og

HOSTENT *he;

må være helt ekvivalent.

Bemærk at

HOSTENT he;

ikke er det samme.

Men næste alle inkarnerede Win32 programmører bruger den konvention.

(jeg har aldrig kunnet se det geniale i den, men ...)
Avatar billede danielhep Nybegynder
06. februar 2003 - 15:31 #12
hmm ok...underligt....Arne jeg er ikke helt med på den der server i WinSocket..Fordi jeg kan ikke rigtigt se hvordan det skal laves..Jeg har godt nok fået nogle links til nettet, men der manualer er jo mega lange eller, og meget kedeligt og dårligt skrevet...Du lyder som en med hang til Socket, så kender du sikkert også lige det rigtige link ??
Avatar billede arne_v Ekspert
06. februar 2003 - 15:46 #13
Hmm.

http://www.gamedev.net/reference/articles/article1804.asp
http://tangentsoft.net/wskfaq/examples/basics/threaded-server.html

var hvad Google lige kunne finde til mig.

Der er der eksempel kode på en multi-threaded server som bruger
sockets i win32 environment.
Avatar billede tam Nybegynder
06. februar 2003 - 19:02 #14
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