Toon posts:

[C#] StreamReader.EndOfStream hangt gedurende 50 seconden

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben wat aan het knooien met een programmaatje wat via een tcpSocket communiceert met een mp3server (MPD). Nu lijkt dit vrij basic en dat zal het ongetwijfeld ook zijn :D maar ik loop toch tegen een klein probleem aan.

alvast de code :
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
TcpClient tcpClient = new TcpClient("192.168.0.84", 6600);

//get a network stream from server
NetworkStream clientSockStream = tcpClient.GetStream();
StreamReader clientStreamReader = new StreamReader(clientSockStream);
StreamWriter clientStreamWriter = new StreamWriter(clientSockStream);

//send message to server
clientStreamWriter.WriteLine("listall");
clientStreamWriter.Flush();

do
{
    textBox1.Text += clientStreamReader.ReadLine();
} while (clientStreamReader.EndOfStream == false);

tcpClient.Close();

ok, waar gaat het mis. Ik verstuur wat naar de server waardoor ik een lijst met mp3 bestanden terug krijg. Als ik met debuggen door de code stap zie ik dat het goed gaat, kortom de lijst komt binnen. Maar dan als het einde van de stream bereikt word hangt het programma voor een seconde of 50. Ik kan ook niet zien wat er gebeurt, er wordt geen regel code gehighlight. Het verdwijnt ff in het niks, totdat de 50 seconden voorbij zijn en regel 17 gehighlight word.

Het lijkt alsof er ergens op gewacht word maar WTF moet dat zijn dan? Enige wat ik kan verzinnen is één of andere timeout. Ik wil vanalles wel closen en opruimen maar zodra EndOfStream bereikt is hangt de handel :?

somebody please enlighten me!