Avatar billede spif2001 Nybegynder
10. november 2005 - 15:46 Der er 6 kommentarer og
2 løsninger

BinaryReader forever

Jeg har en BinaryReader:

BinaryReader br = new BinaryReader(client.GetStream());

Hvor client er en TcpClient.

Min protokol siger at jeg skal læse, så det gør jeg så:

short numOfFiles = br.ReadInt16();

Det er jo dejlig nemt, men....

Hvis min client er hoppet af inden jeg får læst, så står jeg der og venter på at læse for evigt.

Spørgsmål:
Kan man ikke time ud på sådan en forbindelse - a la:
"Nu har jeg ventet 10 sekunder - jeg kan stadig ikke læse - jeg smider en exception"
Avatar billede arne_v Ekspert
10. november 2005 - 16:12 #1
med TcpClient er dine muligheder begrænset

med en Socket kan du lege med Blocking og Available propertyene

(på et tidspunkt vil den time ud men det kan tage lang tid)
Avatar billede spif2001 Nybegynder
10. november 2005 - 16:32 #2
hmmm - øv

Hvad er lang tid?
Avatar billede compilos Nybegynder
10. november 2005 - 16:47 #3
TCPClient.Client.ReceiveTimeout = 1000;

Det virker hos mig!!

/Compilos
Avatar billede spif2001 Nybegynder
10. november 2005 - 16:56 #4
???

Nu er jeg ikke med....

kan man eller kan man ikke?
Avatar billede arne_v Ekspert
10. november 2005 - 17:01 #5
TcpClient Client returnerer de Socket som ligger bag ved og derfor kan man en masse
Blocking, Available, ReceiveTimeout etc.

men Client er protected i 1.1

men jeg har lige checket - den er gjordt public i 2.0

så der er logik i galskaben !
Avatar billede spif2001 Nybegynder
10. november 2005 - 17:55 #6
Hurra så - skal alligevel til at flytte app'en over i 2.0.

Heldig har man vel lov at være engang imellem :)

Smid et svar begge to...
Avatar billede arne_v Ekspert
10. november 2005 - 17:59 #7
svar
Avatar billede compilos Nybegynder
10. november 2005 - 18:09 #8
svar2
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