Hallo,
ich möchte die Daten eines Netzwerkgeräts mittels TCP abfragen. Soweit funktioniert es prinzipiell ja, das Problem ist nur dass die Daten nur teilweise eingelesen werden.
Mein Code: (Verbindung ist erfolgreich aufgebaut.
stream ist hier = Client.GetStream
Es werden hier direkt die eingelesenen Bytes in einen Hex-Code umgewandelt (Das ist für die Darstellung der Daten Notwendig).
Das Problem ist nun, wenn ich die Funktion aufrufe, dass eigentlich folgende Ausgabe erscheinen sollte:
Allerdings kommt es nur zur folgender Ausgabe:
Den TCP-Verkehr habe ich mittels "wireShark" geprüft und es wird der gesamte (erwünschte) Stream übertragen, allerdings wird eben nur ein Teil eingelesen.
Wenn ich im DEBUG-Modus teste und den Code wirklich Schritt für Schritt durchgehe, dann wird der gesamte Stream eingelesen.
Wenn ich zum Beispiel "byte(50)" deklariere, dann wird auch alles eingelesen, aber dann sind halt 48 mal "00" in der Ausgabe enthalten.
Wo liegt denn hier mein Fehler?
Mfg,
Domsi
ich möchte die Daten eines Netzwerkgeräts mittels TCP abfragen. Soweit funktioniert es prinzipiell ja, das Problem ist nur dass die Daten nur teilweise eingelesen werden.
Mein Code: (Verbindung ist erfolgreich aufgebaut.
Code:
Dim i As Integer
' Buffer for reading data
Dim bytes(1) As Byte
Dim data_hex As String
data_hex = ""
' Loop to receive all the data sent by the client.
i = stream.Read(bytes, 0, bytes.Length)
While (i <> 0)
For x As Integer = 0 To bytes.Length - 1
data_hex &= bytes(x).ToString("X2").ToUpper & " "
Next
If Not stream.DataAvailable Then
Exit While
End If
i = stream.Read(bytes, 0, bytes.Length)
End While
Return data_hex
stream ist hier = Client.GetStream
Es werden hier direkt die eingelesenen Bytes in einen Hex-Code umgewandelt (Das ist für die Darstellung der Daten Notwendig).
Das Problem ist nun, wenn ich die Funktion aufrufe, dass eigentlich folgende Ausgabe erscheinen sollte:
Code:
53 47 00 10 06 49 48 0e 01 0c 01 15
Allerdings kommt es nur zur folgender Ausgabe:
Code:
53 47 00 10
Den TCP-Verkehr habe ich mittels "wireShark" geprüft und es wird der gesamte (erwünschte) Stream übertragen, allerdings wird eben nur ein Teil eingelesen.
Wenn ich im DEBUG-Modus teste und den Code wirklich Schritt für Schritt durchgehe, dann wird der gesamte Stream eingelesen.
Wenn ich zum Beispiel "byte(50)" deklariere, dann wird auch alles eingelesen, aber dann sind halt 48 mal "00" in der Ausgabe enthalten.
Wo liegt denn hier mein Fehler?
Mfg,
Domsi