Avatar billede jonbdk Nybegynder
23. november 2005 - 13:48 Der er 3 kommentarer og
1 løsning

TCPlistener alive

Jeg har brug for at finde ud af, om en forbindelse stadig er i live:
Private TcpListener listener = new TcpListener(8888);
private StreamWriter writer;
private TcpClient client;   
private StreamReader reader;
...
listener.Start();
client = listener.AcceptTcpClient();
reader = new StreamReader(client.GetStream());   
... Læsning fra reader ...
Hvis klienten bliver lukket ned, hvordan opdager jeg det på serversiden - jeg har forsøgt mig med:
reader.Peek();
reader.BaseStream.CanWrite;
client.GetStream().DataAvailable;
men alle lader til at returnere det samme no matter...
Avatar billede jonbdk Nybegynder
23. november 2005 - 14:46 #1
Hmmm jeg ved ikke om der er problemer med at gøre det på denne måde, men jeg skriver til streamen
private StreamWriter writer;
writer = new StreamWriter(client.GetStream());
...
public bool isAlive()
{       
  try
  {
    char[] toSend = new char[1];
    toSend[0] = (char)1;
    writer.WriteLine(toSend);
    writer.Flush();         
    return true;
  }
  catch(Exception e )
  {
    return false;
  }
}

/Jon
Avatar billede dr_chaos Nybegynder
23. november 2005 - 15:28 #2
du får nok ikke nogen svar når du selv har accepteret et svar på dit spørgsmål.
Avatar billede Syska Mester
23. november 2005 - 15:41 #3
Nej, men så er han vel tilfreds med den løsning han har fundet....
Avatar billede dr_chaos Nybegynder
23. november 2005 - 15:47 #4
ja :)
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