Avatar billede syncroniq Nybegynder
15. januar 2008 - 08:25 Der er 7 kommentarer

WinSock index, vokser

Hej,

Jeg har lavet en lille server med WinSock, og har fået den til at fungere med flere klienter på samme tid. Men jeg har lagt mærke til at dens arraystørrelse vokser for hver klient, men ikke skrumper når de bliver lukket.

Vil det sige at mit server program på et tidspunkt brager ned fordi den når et max?

Kan man få den til at reinitialisere sig når man smider en klient af og dermed ryde op?
Avatar billede sjh Nybegynder
15. januar 2008 - 09:10 #1
Ja du skal nok regne med at få fejl nå der ikke er flere Index tilbage ;)

Du kan lave det med 2 winsock og 2 vinduer hvor du laver et nyt vindue + wincock hver gang en client kommer ind og så selv afslutter når client forlader connection.

prøv at se den her : http://vbhansen.dk/spm/692010/Server.zip
Avatar billede syncroniq Nybegynder
15. januar 2008 - 09:50 #2
Hey,

Den løsning har jeg lavet, men syntes ikke den er særlig elegant, hvis det her kan lade sig gøre. Med det jeg har ganng i her, skal man connecte på samme port altid.

Kan man virkelig ikke ryde op?
Avatar billede sjh Nybegynder
15. januar 2008 - 09:57 #3
Hvad er problemet.. det er da samme port som bruges : def_Port = 80

Jo der kan sikkert "rydes op" men du får helt sikkert problemer med det alivel, jeg har prøvet det 1000 gange og er altid endt med den løsning jeg linker til.
Avatar billede sjh Nybegynder
15. januar 2008 - 10:05 #4
Dit problem kommer jo når fx. Jeg benytter Index 7 og du benytter Index 432 så kan du ikke unload Index 8-431 for så vil du ryge af.. ellers skal du loade alle de Winsock som skal bruges og så løbe dem igennem når en eller anden vil connect til dig, for at se om der er en winsock som ikke er i brug.

Det bliver noget hø..
Avatar billede sjh Nybegynder
15. januar 2008 - 10:07 #5
Og kommer der 2 connect på samme tid så ser dit program den samme winsock som free, så vil du sikkert få fejl..
Avatar billede syncroniq Nybegynder
15. januar 2008 - 10:14 #6
Hey,

Jeg tror WinSock har styr på samtidigheds problemmer (gæt) men det er noget bøvel med at den ikke ryder op. Har tænkt man kunne reinitialisere objektet hver gang der var 0 connected... men det virker som en hovedpinepille mod kraniebrud.
Avatar billede sjh Nybegynder
15. januar 2008 - 10:35 #7
Nææ winsock har ikke styr på noget, den gør kun det som du fortæller den at den skal gøre.. Hvis du får lavet en fejl i din kode som fortæller din winsock at den skal oprette en connect til samme sock så er i brug så gør den det og virker det ikke vil du få fejl. Winsock kan jo ikke vide hvad det er du vil, den kan kun gøre det som du skriver den skal.
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