07. juni 2001 - 13:11Der er
7 kommentarer og 1 løsning
Winsock: serverfejl v. gentagende forbindelser
Jeg har en server der med winsock funktioner lytter efter clienter. Der kan fint logge en client på. Når clienten logger af kaldes closesocket( s ).
Men efterfølgende kan der ikke logge flere clienter på. Jeg initialiserer IKKE mit socket igen - og får dereved fejl 10022 når jeg kalder accept( s, ( struct sockaddr * )&local, addrlen )
HELT i begyndelsen af min kode (inden en while(true) løkke) opretter jeg SOCKET s. Og det er SOCKET s jeg arbejder på hele vejen igennem mit kode... Og første gang kører det jo også fint...
Du har en server socket som forkes således at din klient tager den..så kan andre klienter også få deres forket socket...hvis du lukker din clientsocket så er der intet problem med nye men hvis du lukker din serversocket så skal du lave en ny
Jeg kører ikke i tråde - så jeg \"forker\" ikke noget) Jeg har 2 stykker software. 1 server.exe og en client.exe Og der kan kun være logget 1 client på ad gangen. Og når serveren afbryder forbindelsen til en client skal den være klar til at en ny client kan logge på. Og det er HER det går galt!
Jeg har prøvet at oprette en ekstra funktion der bliver kaldt fra en while(true) løkke. I den løkke der kaldes kører hele programmet - og i starten af dette oprettes socket vha: \"SOCKET s;\"
Jeg kan godt få lov at åbne et passive socket på et nyt portnummer. Det er som om jeg ikke kan frigive/slette ALT information om det gamle portnummer. Hvordan gør jeg det ??
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.