Eleu Geschrieben 16. Dezember 2010 Teilen Geschrieben 16. Dezember 2010 Hallo, ein Host sendet einen SNMP- Trap zu einem fernen Rechner. In dem Bild vom Netzwerksniffer im Anhang, ist der Datenteil des UDP-Pakets von dem Rechner der es abgeschickt hat zu sehen. Auf dem fernen Rechner läuft eine Visual Basic 6 Applikation, die den Trap empfängt und auch darstellen soll. Mein Problem ist, dass sich die Empfangsdaten, die ich in der Applikation zuvor konvertiere und als HEX-Code anzeige, manchmal von den Hex-Werten die abgeschickt wurden unterscheiden. Warum weiß ich nicht ? Mit der Schaltfläche in der Applikation, kann ich es wieder in Ascii - Format zurückwandeln und in dem zweiten Textfeld anzeigen. Wie man im zweiten Bild sieht, wird zum Teil dort nur murks angezeigt. Aber eben nur zum Teil. Kann man für das winsock-Control in VB 6 einen Empfangspuffer fixer Länge anlegen, den man bei Bedarf auch mal leeren kann ? Woran kann das liegen ? Die Applikation hat nachfolgenden Quellcode: Dim strText As String Dim Wert As String --------------- Public Function StringToHex(strText As String) As String Dim intIndex As Integer On Error GoTo err_exit For intIndex = 1 To Len(strText) StringToHex = StringToHex & _ Hex(Asc(Mid$(strText, intIndex, 1))) Next Exit Function err_exit: StringToHex = "" End Function ----------------------- Public Function HexToString(ByVal Wert As String) As String On Error GoTo err_exit Dim intIndex As Integer For intIndex = 1 To Len(Wert) Step 2 HexToString = _ HexToString & Chr$(CLng("&H" & Mid$(Wert, intIndex, 2))) Next Exit Function err_exit: HexToString = "" End Function ------------------------------ Private Sub Command2_Click() Wert = txtMessage.Text Text1.SelText = HexToString(Wert) End Sub --------------------------------- ' Wenn Daten ankommen... Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ' Die ankommenden Daten werden in einer Variable ' (strText) gespeichert... Winsock1.GetData strText ' ... und in einer MutliLine-TextBox ausgegeben With txtMessage .SelStart = Len(.Text) .SelText = StringToHex(strText) End With Wert = txtMessage.Text End Sub ------------------------------ Private Sub Form_Load() Dim nPort As Integer Dim sOwnIP As String ' UDP-Protokoll einstellen Winsock1.Protocol = sckUDPProtocol ' Port, der überwacht werden soll nPort = 162 ' Eigene IP ermitteln sOwnIP = Winsock1.LocalIP ' Port an die IP "binden" Winsock1.Bind nPort, sOwnIP End Sub ---------------------------------------- Gruß EleuSNMP.zip Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eleu Geschrieben 18. Dezember 2010 Autor Teilen Geschrieben 18. Dezember 2010 Wenn ich den Rechner, der den SNMP-Trap sendet, neu starte und der Rechner danach erneut einen Trap sendet, werden die Daten auf der Empfängerseite in der App. richtig angezeigt. Nach ein paar mal senden, ist es dann wieder murks der angezeigt wird.:eek Ich glaube, dass im Empfangspuffer irgendwann alles durcheinander gewürfelt wird. Gibt es eine Möglichkeit, über ein Ereignis (Z.B. Schaltfläche) den Empfangspuffer der Winsock zu leeren ? Vielleicht kann man damit das Problem lösen ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.