Вобщем сама идея программы."Клиент" коннектится к удаленному серверу,Отправляет некую последовательность байтов.В зависимости от ответа сервера, совершается некое действие.
Теперь проблема:
Как в VB заставить передавать байты в HEX формате.Вот например так (пакет пойман сниффером, нужно чтоб приложение-клиент копировал этот пакет):
6400F0B5010066726170733134000000000000000
00000000000000000006672617073000000000000
0000000000000000000000000019
Я пользовался самописной ф-цией,которая переводит HEX в Строку.Но это ф-ция почему-то никак не хочет работать,если встетит HEX значение 00. Т е hex2str(64) выводит d,а hex2str(6400) не выводит ничего.
К тому же я подозреваю,что использовать такую функцию для моей цели не очень разумно
Вот весь код
Private Sub Command1_Click()
Dim snac As String
wins.RemoteHost = "81.x.x.x"
wins.RemotePort = 6xxx
wins.LocalPort = 3xxx
snac = hex2str(HEX-ЗНАЧЕНИЕ)
Label2.Caption = snac
wins.Connect
End Sub
Private Sub wins_Connect()
If wins.State = sckConnected Then
Label1.Caption = "Connected"
wins.SendData snac
Else
Label1.Caption = "Error"
End If
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
wins.GetData sData, vbString
Label2.Caption = sData
End Sub
Private Function hex2str(ByVal data As String) As String
Dim i As Integer
For i = 1 To Len(data) Step 2
hex2str = hex2str & Chr(Val("&H" + Mid$(data, i, 2)))
Next i
End Function
Заранее спасибо.
Ответить
|