Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfangsdaten werden nicht richtig angezeigt (winsock)

Empfohlene Antworten

Veröffentlicht

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ß

Eleu

SNMP.zip

  • Autor

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 ?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.