Avatar billede Lasse Novice
14. juli 2005 - 20:13 Der er 7 kommentarer og
1 løsning

UdpReceive abort

Hej...

Jeg har lavet en server der kigger paa udp messages. Koden ser saaledes ud (pseudo):

UdpClient udpServer;
bool continue = true

Start()
{
continue = true;

while(continue)
{
  byte[] bytes = udpServer.Receive();
}
}


Stop()
{
continue = false
// Hvad skal jeg skrive her for at udpServer.Receive hopper videre???
}

Mit problem er at jeg nogen gange gerne vil stoppe min server.
Hvordan kommer jeg ud af udpServer.Receive() kaldet???
Avatar billede arne_v Ekspert
14. juli 2005 - 20:16 #1
laver et management interface som interruper tråden der venter !?
Avatar billede Lasse Novice
14. juli 2005 - 20:24 #2
Ok... hvordan kan jeg faa fat i traaden
Avatar billede arne_v Ekspert
14. juli 2005 - 20:27 #3
den gemmer du en reference til når du starter den
Avatar billede Lasse Novice
14. juli 2005 - 22:13 #4
Det skal maaske lige siges at jeg udvikler til den netCF.

Du mener at start skal ligge i en traad for sig selv, ik sandt? I stop skal jeg abort thread... Det har jeg proevet, men det virker ikke.
Avatar billede arne_v Ekspert
14. juli 2005 - 22:17 #5
det var nu Interrupt og ikke Abort jeg tænkte på

jeg kender intet til CF
Avatar billede superl00t Nybegynder
15. juli 2005 - 11:14 #6
Du kan ikke bare aborte eller interrupte tråden, eftersom udpServer.Recieve() er et blokerende kald. For at komme ud af løkken, bliver du nødt til at lukke for UdpClient objektet via udpServer.Close().

Det giver dig sandsynligvis en exception som du så må fange. Jeg har ikke fundet andre løsninger, og har selv haft besvær med problemet, men den virker.
Avatar billede Lasse Novice
15. juli 2005 - 19:36 #7
Problemet er at abortning af traaden VIRKER, men det tager laaaaaang tid. Foerste gang det sker, tager det 20 sek, derefter 3 sec hver gang (paa min PDA).

Jeg syntes nu nok at jeg har proevet det (hvor det ikke virkede), men lad mig lige proeve en gang til. Hvor lang tid tager det foer at exceptionen kommer??? Jeg regner med at exceptionen kommer i while-traaden???

Jeg har lavet en anden loesning, hvilken er mere et hack end en loesning, men det virker.
Jeg sender simpelthent fra lokalmaskinen en udp message til serveren. Serveren ser at det kommer fra lokal maskinen(loopback), og hopper ud af while loekken.
Avatar billede Lasse Novice
07. september 2005 - 22:58 #8
lukker spg.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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