Я пишу замену старой библиотеки, которую мы используем в офисе для связи с довольно неуклюжей и старой нестандартной платформой C ++, которая принимает запросы через сокеты для связи с кучей других систем.Проблема в том, что он будет принимать только текстовые сообщения, содержащие строку, которая должна быть отформатирована очень специфическим способом.
Проблема, с которой я сталкиваюсь, заключается в том, что я до сих пор не нашел способ отправки простого текста.текст через сокет.Метод Send сокета будет принимать только байтовые массивы, и пока точка прослушивания получает данные, она оказывается там полностью зашифрованной, и я никак не могу связываться с этим, чтобы преобразовать массив байтов обратно в обычный текст.Мне нужно иметь возможность отправлять обычный текст, а не байтовые массивы.
Это метод Connect и способ отправки, который у меня есть:
Public Sub Connect(Optional ByVal pHostName As String = "", Optional ByVal pPort As Integer = 0)
If pHostName.Trim <> "" Then mHostName = pHostName
If pPort > 0 Then mPort = pPort
Try
Dim ipep As IPEndPoint
If IsIPAddress(mHostName) Then
ipep = New IPEndPoint(IPAddress.Parse(mHostName), mPort)
Else
ipep = New IPEndPoint(IPAddress.Parse(Dns.GetHostEntry(mHostName).AddressList(0).ToString), mPort)
End If
mSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
mSocket.Connect(CType(ipep, EndPoint))
mState = eState.Connected
RaiseEvent Connected()
mDataTimer.Start()
Catch ex As Exception
Me.Close()
Throw ex
End Try
End Sub
Public Sub SendData(ByVal pBytes() As Byte)
mSocket.Send(pBytes)
End Sub
Public Sub SendString(ByVal pString As String)
Dim bytes() As Byte = System.Text.Encoding.UTF8.GetBytes(pString)
mSocket.Send(bytes)
End Sub
Любая помощь будет оценена!