VB.NET TCP服务器套接字编程 - 从字节接收字符串
如何从此代码中获取字符串而不是char数组?VB.NET TCP服务器套接字编程 - 从字节接收字符串
客户端代码:
stm = tcpClient.GetStream()
Dim ascenc As New ASCIIEncoding
Dim byteData() As Byte = ascenc.GetBytes(strMessage(counter))
Thread.Sleep(2000)
Console.WriteLine("Transmitted ")
stm.Write(byteData, 0, byteData.Length())
Server代码:
Dim size As Integer = TcpSocket.Receive(bitData)
Dim chars(size) As Char
For i As Integer = 0 To size
chars(i) = Convert.ToChar(bitData(i)) // i want to get the string directly, how ?
Next
Dim newString As New String(chars)
Console.WriteLine(newString)
strMessage(counter) = newString
你已经拥有了它你的代码,我建议实施:
Dim MyString As String = New String(MyArray)
如果你想字节数组转换你可以使用:
Dim MyString As String = Encoding.ASCII.GetString(bytes)
他已经这样做了,但是:'Dim newString As New String(chars)'。他想要转换字节数组,而不是迭代它来创建一个char数组。 –
@VisualVincent是的,这就是为什么我编辑我不明白他的问题。然后一个简单的:Encoding.ASCII.GetString(字节) – Mederic
这就是他想要的,是的。我在回答中写道(除了我用他的方法而不是静态属性)。 –
您也可以在服务器上使用ASCIIEncoding
。只需使用它的GetString()
method而不是GetBytes()
。
Dim ascenc As New ASCIIEncoding
Dim newString As String = ascenc.GetString(bitData)
[尝试](https://msdn.microsoft.com/en-us/library/ms172827.aspx)[使用Google](https://www.dotnetperls.com/convert-string-byte- array-vbnet)[at](http://*.com/questions/1003275/how-to-convert-byte-to-string)[all?](http://www.convertdatatypes.com/Convert-Byte -Array-to-String-in-VB.net.html) –