我正在尝试将 28 个字符的字符串发送到远程 IP 地址和端口。我已使用以下代码片段在 vb.net 中成功完成此操作:
Dim swon As String = "A55A6B0550000000FFFBDE0030C8"
Dim sendBytes As [Byte]()
sendBytes = Encoding.ASCII.GetBytes(swon)
netStream.Write(sendBytes, 0, sendBytes.Length)
我现在必须将其转换为 C++,并且到目前为止有以下内容:
char *swon = "A55A6B0550000000FFFBDE0030C8";
array<Byte>^ sendBuffer = gcnew array<Byte>(bufferSize);
sendBuffer = BitConverter::GetBytes( swon );
tcpStream->Write(sendBuffer, 0, sendBuffer->Length);
但我现在卡住了。我确定我遗漏了一个简单的语法错误,但我想不通!
澄清一下,我没有收到错误,但我认为字符串没有正确转换为字节,因为当我转换回来时,我只得到一个 '01'
干杯, 克里斯
最佳答案
我不明白为什么您不只是在++/CLI 代码中使用完全相同的 .Net 框架类。例如。 System::String
用于swon
,Encoding::ASCII
生成字节数组。
您在 VB 中所做的任何事情都可以直接映射到 C++/CLI,而无需使用不同的类 - 这对您来说是最简单的移植。当您在 MSDN 在线时,只需选择 C++
View 即可获取您想要执行的操作的示例。在此页面上试试,例如:http://msdn.microsoft.com/en-us/library/system.text.encoding.ascii.aspx
关于vb.net - c++将字符串转换为字节以通过tcp发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6332734/