08. marts 2005 - 11:41Der er
14 kommentarer og 1 løsning
Lukke en TcpClient ned
Jeg har lavet mig et serverprogram som opretter en Client-class for hver connection der bliver lavet og udfører en Handle()-metode i sin egen tråd.
I denne Handle går jeg ind i en løkke der skal køre så længe at en variabel er sand, og det er meningen at serveren skal nedlægge connectionen når denne variabel ændres til falsk. Nu problemet bare at inde i løkken, som lytter på input, hænger udførslen ved en ReadLine(), dvs. at selvom kør-vriablen ændres til falsk lukkes forbindelsen først efter næste modtagelse af en kommando.
Det er helt sikkert en uhensigtsmæssighed i min struktur af Handle-metoden, men jeg ved ikke lige hvordan den ellers skal laves.
public void Handle() { WriteLine("Hello"); sWriter.Flush();
while (continueHandling) { Command comm = new Command(sReader.ReadLine(), ' ');
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.
well well... lader til der er en DataAvailable-property på NetworkStream-klassen man kan bruge. For ikke at bruge for mange ressourcer har jeg valgt at lave en Thread.Sleep i bunden af løkken - er der andre måder at løse det problem på?
public void Handle() { WriteLine(DateTime.Now +": Hello"); sWriter.Flush();
while (continueHandling) { if (client.GetStream().DataAvailable) { Command comm = new Command(sReader.ReadLine(), ' ');
:) ja, nu mente jeg heller ikke listener, ved ikke lige hvorfor jeg skrev det. Det er selvfølgelig min StreamReader, StreamWriter og TcpClient jeg skal lukke pænt ned. Men det kan jeg altså der hvor jeg cather exception?
nu har jeg prøvet at rode med det, og har fået det til at virke med at kalde abot på tråden, men indtil videre er det ikke blevet noget særlig pæn kode, da strukturen ikke lagde op til at jeg skulle gemme referencen til tråden klienten kører i. Men i kan da få lov at dele pointene.
Ikke at jeg er meget for at arne skal have endnu flere point i c#-kategorien, så indhenter jeg ham jo aldrig... men sådan er reglerne :P ;) hehe
det er jo fuldstændig grotesk... der er 26000 point fra nr 1 til nr 2 i denne kategori. Har du en masse små kineserbørn der sidder og svarer på spørgsmål i dit navn, og så kan de lige få en skål ris, om ugen, som tak?
ja... men nu tænkte jeg sådan set kun på denne kategori. Ved godt at hovedparten af dine point ikke kommer fra .Net kategorierne, men det forhindrer dig nu alligevel ikke i at ligge nr 1 i dem alle sammen, på nær asp.net.
Det er rigtig nok at man skal være aktiv over en lang periode. Men to svar om dagen er også mange, når man tager i betragtning hvor meget af tiden der egentlig går på snik-snak og kredsen rundt om problemet indtil man finder den rigtige løsning.
well.. jeg ventede sådan set på et svar fra lifo ;)
jf. 26/03-2005 10:13:14 og at "i kan få lov at dele"
giver ham lige lidt ekstra tid til at svare
Synes godt om
Ny brugerNybegynder
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.