daten von COM überwachen (SNIFFER)

    • VB6

    Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Agent.

      daten von COM überwachen (SNIFFER)

      ich habe mal ein ´kleines PRG geschrieben welches daten von COM1 oder COM2, jeweils protokolliert und weitersendet. Frei nach dem Motto , was geht da eigentlich ab, zwischen diesen beiden Geräten ?
      Nicht vollkommen aber es funzt.
      Bitte um Eure Meinung ....
      Ist sowas brauchbar oder nur Bullshit ?
      Zu Details bitte fragen...

      Hier der CODE:

      Visual Basic-Quellcode

      1. Dim buffer1, buffer2, bufferrx1, bufferrx2, buffertx1, buffertx2 As String
      2. Private Sub Form_Load()
      3. Form1.Caption = "Repeater von COM nach COM"
      4. With MSComm1
      5. .CommPort = 1
      6. .Handshaking = 2 - comRTS
      7. .RThreshold = 1
      8. .RTSEnable = True
      9. .Settings = "9600,n,8,1"
      10. .SThreshold = 1
      11. .PortOpen = True
      12. ' Leave all other settings as default values.
      13. End With
      14. With MSComm2
      15. .CommPort = 2
      16. .Handshaking = 2 - comRTS
      17. .RThreshold = 1
      18. .RTSEnable = True
      19. .Settings = "9600,n,8,1"
      20. .SThreshold = 1
      21. .PortOpen = True
      22. ' Leave all other settings as default values.
      23. End With
      24. Text1.Text = ""
      25. Text3.Text = ""
      26. End Sub
      27. Private Sub Form_Unload(Cancel As Integer)
      28. MSComm1.PortOpen = False
      29. MSComm2.PortOpen = False
      30. End Sub
      31. '--------------
      32. 'INT FÜR COM1 |
      33. '--------------
      34. Private Sub MSComm1_OnComm()
      35. Dim InBuff1 As String
      36. Select Case MSComm1.CommEvent
      37. ' Errors
      38. Case comEventBreak ' A Break was received.
      39. Case comEventCDTO ' CD (RLSD) Timeout.
      40. Case comEventCTSTO ' CTS Timeout.
      41. Case comEventDSRTO ' DSR Timeout.
      42. Case comEventFrame ' Framing Error.
      43. Case comEventOverrun ' Data Lost.
      44. Case comEventRxOver ' Receive buffer overflow.
      45. Case comEventRxParity ' Parity Error.
      46. Case comEventTxFull ' Transmit buffer full.
      47. Case comEventDCB ' Unexpected error retrieving DCB]
      48. ' Events
      49. Case comEvCD ' Change in the CD line.
      50. Case comEvCTS ' Change in the CTS line.
      51. Case comEvDSR ' Change in the DSR line.
      52. Case comEvRing ' Change in the Ring Indicator.
      53. Case comEvReceive ' Received RThreshold # of chars.
      54. InBuff1 = MSComm1.Input
      55. Call HandleInput1(InBuff1)
      56. Case comEvSend ' There are SThreshold number of
      57. ' characters in the transmit buffer.
      58. Case comEvEOF ' An EOF character was found in the
      59. ' input stream.
      60. End Select
      61. End Sub
      62. '---------------------
      63. 'Auswertung FÜR COM1 |
      64. '---------------------
      65. Sub HandleInput1(InBuff1 As String)
      66. 'IN TEXT1 WIRD DER INHALT DER EMPFANGENEN DATEN IN ASC ANGEZEIGT + einem " "
      67. buffer1 = ""
      68. i1 = 1
      69. For i1 = 1 To Len(InBuff1)
      70. buffer1 = Asc(Mid(InBuff1, i1))
      71. If Len(buffer1) = 3 Then
      72. Text1.Text = Text1.Text & buffer1 & " "
      73. buffertx1 = buffertx1 & buffer1 & " "
      74. Else
      75. If Len(buffer1) = 2 Then
      76. buffer1 = "0" & buffer1
      77. Text1.Text = Text1.Text & buffer1 & " "
      78. buffertx1 = buffertx1 & buffer1 & " "
      79. Else
      80. buffer1 = "00" & buffer1
      81. Text1.Text = Text1.Text & buffer1 & " "
      82. buffertx1 = buffertx1 & buffer1 & " "
      83. End If
      84. End If
      85. buffer1 = ""
      86. Next i1
      87. '-------------------------------------------------
      88. 'EMPFANG AUF COM1-SENDEN DES EMPFANGS AUF COM2 |-----------------------------------------------------------------
      89. '-------------------------------------------------
      90. For i3 = 1 To Len(Text1.Text)
      91. If Mid(buffertx1, i3, 1) <> " " Then
      92. buffers2 = buffers2 & Mid(buffertx1, i3, 1)
      93. Else
      94. MSComm2.Output = Chr(buffers2)
      95. buffers2 = ""
      96. End If
      97. Next i3
      98. buffertx1 = ""
      99. ' Text1.Text = Text1.Text & vbCrLf
      100. End Sub

      Visual Basic-Quellcode

      1. '--------------
      2. 'INT FÜR COM2 |
      3. '--------------
      4. Private Sub MSComm2_OnComm()
      5. Dim InBuff2 As String
      6. Select Case MSComm2.CommEvent
      7. ' Errors
      8. Case comEventBreak ' A Break was received.
      9. Case comEventCDTO ' CD (RLSD) Timeout.
      10. Case comEventCTSTO ' CTS Timeout.
      11. Case comEventDSRTO ' DSR Timeout.
      12. Case comEventFrame ' Framing Error.
      13. Case comEventOverrun ' Data Lost.
      14. Case comEventRxOver ' Receive buffer overflow.
      15. Case comEventRxParity ' Parity Error.
      16. Case comEventTxFull ' Transmit buffer full.
      17. Case comEventDCB ' Unexpected error retrieving DCB]
      18. ' Events
      19. Case comEvCD ' Change in the CD line.
      20. Case comEvCTS ' Change in the CTS line.
      21. Case comEvDSR ' Change in the DSR line.
      22. Case comEvRing ' Change in the Ring Indicator.
      23. Case comEvReceive ' Received RThreshold # of chars.
      24. InBuff2 = MSComm2.Input
      25. Call HandleInput2(InBuff2)
      26. Case comEvSend
      27. Case comEvEOF
      28. End Select
      29. End Sub
      30. '----------------------
      31. 'Auswertung FÜR COM2 |
      32. '----------------------
      33. Sub HandleInput2(InBuff2 As String)
      34. 'IN TEXT3 WIRD DER INHALT DER EMPFANGENEN DATEN IN ASC ANGEZEIGT + einem " "
      35. buffer2 = ""
      36. i2 = 1
      37. For i2 = 1 To Len(InBuff2)
      38. buffer2 = Asc(Mid(InBuff2, i2))
      39. If Len(buffer2) = 3 Then
      40. Text3.Text = Text3.Text & buffer2 & " "
      41. buffertx2 = buffertx2 & buffer2 & " "
      42. Else
      43. If Len(buffer2) = 2 Then
      44. buffer2 = "0" & buffer2
      45. Text3.Text = Text3.Text & buffer2 & " "
      46. buffertx2 = buffertx2 & buffer2 & " "
      47. Else
      48. buffer2 = "00" & buffer2
      49. Text3.Text = Text3.Text & buffer2 & " "
      50. buffertx2 = buffertx2 & buffer2 & " "
      51. End If
      52. End If
      53. buffer2 = ""
      54. Next i2
      55. '-----------------------------------------------
      56. 'EMPFANG AUF COM2-SENDEN DES EMPFANGS AUF COM1 |-------------------------------------------------------------------
      57. '-----------------------------------------------
      58. For i4 = 1 To Len(Text3.Text)
      59. If Mid(buffertx2, i4, 1) <> " " Then
      60. buffers1 = buffers1 & Mid(buffertx2, i4, 1)
      61. Else
      62. MSComm1.Output = Chr(buffers1)
      63. buffers1 = ""
      64. End If
      65. Next i4
      66. buffertx2 = ""
      67. ' Text3.Text = Text3.Text & vbCrLf
      68. End Sub

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()

      Ich denke mal, dies passt eher in Sourcecode-Austausch. Außerdem sieht der Code mit dem VB-Tag übersichtlicher aus. -> Verschoben

      Edit: aus irgendeinem Grund ist der Code zu groß für den VB-Tag und wird nur als [Code] angezeigt!?
      Gruß, Agent Smith 8-)

      activeFlags = (lazy OR weary)

      Lemgo-Verschwörung | Mathematics | VB-Paradise in blau

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agent“ ()

      Hi,

      @Agent
      aus irgendeinem Grund ist der Code zu groß für den VB-Tag ...[/qoute]

      das hatte ich vor ein paar Tagen schon einmal und habe einfach den Code in 2 VN Tags eingepackt ^^


      bye ...

      LaMa5.
      Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
      (Autor: Earl Wilson, amerik. Schriftsteller)

      https://www.serviceteam-md.de
      Prinzipiell ist es natürlich interessant, was die verschiedenen Schnittstellen austauschen. Besonders wenn man eine Art Firewall selber Bauen möchte. Kann man mit dem Code eigentlich nur "mitlesen" oder auch abfangen und manipulieren?
      Gruß, Agent Smith 8-)

      activeFlags = (lazy OR weary)

      Lemgo-Verschwörung | Mathematics | VB-Paradise in blau