0

Visual Basic 6.0を使用して、イーサネットまたは LAN に 16 進データを送信したいと考えていました。16 進データは次のようになります。

AB7745683ACB76B34E5FF5E99EBC5F878A6BC8E9DF9876BCEA89

フォームには、ユーザーがこのデータを入力するテキスト ボックスがあります。

Visual Basic 6.0 を使用して、この 16 進データを LAN またはイーサネットに送信するにはどうすればよいですか?

4

1 に答える 1

3
'1 form with:
'    1 textbox control: name=Text1
'    1 winsock control: name=Winsock1
Option Explicit

Private Sub Command1_Click()
  SendCmd Text1.Text
End Sub

Private Sub Form_Load()
  Text1.Text = "AB7745683ACB76B34E5FF5E99EBC5F878A6BC8E9DF9876BCEA89"
End Sub

Private Sub SendCmd(strHex As String)
  Dim strCmd As String
  With Winsock1
    'make sure we are connected
    DoConnect
    'convert hex to cmd
    strCmd = Hex2Cmd(strHex)
    'send cmd
    .SendData strCmd
  End With 'Winsock1
End Sub

Private Sub DoConnect()
  With Winsock1
    If .State <> sckConnected Then
      .Connect "192.168.98.17", 5001 'Destination IP address and port
      Do Until .State = sckConnected
        DoEvents
      Loop
    End If
  End With 'Winsock1
End Sub

Private Function Hex2Cmd(strHex As String) As String
  Dim intHex As Integer
  Dim strCmd As String
  strCmd = ""
  For intHex = 1 To Len(strHex) Step 2
    strCmd = strCmd & Chr$(Val("&H" & Mid$(strHex, intHex, 2)))
  Next intHex
  Hex2Cmd = strCmd
End Function
于 2013-01-09T06:35:52.650 に答える