28. juli 2004 - 11:07Der er
10 kommentarer og 1 løsning
Socket problemer
Hey!
Mit program fryser hver gang jeg vil prøve at udføre nedenstående kode... Jeg har fundet ud af at det er ved denne linje den fryser: Socket socketForClient = tcpListener.AcceptSocket();
Hvis jeg udkommentere den kommer min windows form fintfint op...
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Sætter du den aktive proces til at blokere indtil en klient tilslutter til din tcpListener, som er bundet til en port. Metoden AcceptSocket() blokerer altså indtil den modtager en forbindelse. Vil du have din applikation til at køre videre, skal du placere kaldet af AcceptSocket() i en seperat tråd, således at den kan vente på en indgående forbindelse, mens resten af din server-applikation arbejder videre.
Grunden til at du ikke får din form at se er som vi alle har skrevet, nemlig at AcceptSocket er en blokerende metode... som dsj skriver kan du f.eks. implementere det i en separat tråd.
Spørgsmålet er også, om du overhovedet vil have din server til at lave noget, mens den venter på, at en klient tilslutter? Dette kunne f.eks. være at vente på at flere klienter tilslutter, således at serveren kan håndtere flere klienter på samme tid. Hvis dette er tilfældet, er det absolut nødvendigt at anvende flere tråde (minimum én pr. tilsluttede klient så længe du anvender blokerende streams til netværkskommunikatione, og én til din TcpListener-instans), og så går det hen og bliver lidt mere kompliceret end nu.
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.