У меня есть настройка подключения tcpclient, фиксирующая непрерывный поток HTTP. По какой-то причине после чтения первых нескольких байтов поток не получает никаких данных в течение длительного времени. Есть ли проблема с моим кодом?tcpclient getstream - нулевые байты считаются
Dim tclient As TcpClient = New TcpClient(url, "80")
nstream = tclient.GetStream()
If nstream.CanRead Then
defaultsize = 8000, BUFFER_SIZE = 1024
Dim bufferread(defaultSize) As Byte
Dim data As String
mstring = New StringBuilder
numbytesread = 0
Dim timestamp As DateTime = DateTime.Now
Do
numbytesread = nstream.Read(bufferread, 0, BUFFER_SIZE)
If numbytesread > 1 Then
timestamp = DateTime.Now
data = Encoding.UTF8.GetString(bufferread, 0, numbytesread)
parsingUtilities.appendXMLtoFile(data)
End If
If DateTime.Now.Subtract(timestamp).TotalSeconds > 60 Then
'timestamp shows no bytesread for more than 60 seconds, then reconnect
Exit Sub
End If
Loop While tclient.Connected
End If
Спасибо за ваш ответ. Я не был уверен, как захватить поток и получить советы от другого prgmmer .. но я буду рассматривать либо использование streamreader, либо декодер. О да, я помню, почему я использовал сетевой поток, я не мог читать из tcpclient.getstream используя streamreader.Что именно вы подразумеваете под потоком, блокирующим неограниченное время и таймаутом чтения. Я думал, что если я не получу ничего в потоке больше минуты, мне нужно снова подключиться. – vbNewbie