Я читаю данные через TCP с камеры, я сначала посылаю триггер через TCP, чтобы сделать снимок, затем я прочитал изображение камеры. Все работает штрафы до 296 триггеров, с этого момента программа блокируется при первом чтении TCP.Чтение данных TCP с камеры останавливается после определенного количества снимков
Я могу временно исправить это, отправив снова триггер (из другой программы). Я считаю, что в этот момент камера срабатывает 2 раза (возможно, заблокированная и новый триггер (для исправления)).
У кого-нибудь есть идея, что может пойти не так? Спасибо!
'Code in Timer
'Trigger
Dim tcpClient As New System.Net.Sockets.TcpClient()
tcpClient.Connect("ip", port)
Dim networkStream As NetworkStream = tcpClient.GetStream()
If networkStream.CanWrite Then
networkStream.Write(dataTrigger, 0, n)
tcpClient.Close()
Else
If Not networkStream.CanWrite Then
Console.WriteLine("cannot read data from this stream")
tcpClient.Close()
End If
End If
networkStream.Close()
'Read images
Dim tcpClient As New System.Net.Sockets.TcpClient()
tcpClient.Connect("ip", port)
Dim networkStream As NetworkStream = tcpClient.GetStream()
If networkStream.CanRead Then
' Reading data length
Dim dataLength(15) As Byte
networkStream.Read(dataLength, 0, 16)
' Reading all data
Dim bytesReaded, bytesLeft, bytesCounter As Integer
bytesCounter = 0
bytesLeft = dataLength
Do While bytesLeft > 0
bytesReaded = networkStream.Read(dataImages, bytesCounter, bytesLeft)
bytesCounter = bytesCounter + bytesReaded
bytesLeft = dataLengthInt - bytesCounter
Loop
tcpClient.Close()
Else
If Not networkStream.CanRead Then
Console.WriteLine("cannot not write data to this stream")
tcpClient.Close()
End If
End If
networkStream.Close()
Спасибо, это может быть причиной, хотя я думаю, что это не блокирует функцию. Преобразование dataLengthInt не учитывается. –