【发布时间】:2011-11-14 00:16:54
【问题描述】:
我正在为我们在办公室使用的旧库编写一个替代品,以与一个相当笨拙且旧的定制 C++ 框架进行通信,该框架通过套接字接收请求,以便与一堆其他系统进行通信。问题是它只会接收包含必须以非常特定方式格式化的字符串的纯文本消息。
我面临的问题是到目前为止我还没有找到一种通过套接字发送纯文本的方法。套接字的 Send 方法只接受字节数组,当监听点接收数据时,它会完全打乱,我无法将字节数组转换回纯文本。我需要能够发送纯文本,而不是字节数组。
这是我目前使用的 Connect 和 Send 方法:
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
任何帮助将不胜感激!
【问题讨论】:
-
另一边有什么服务/脚本或应用程序?解释更多,以便我们为您提供帮助。