如何格式化传入的蓝牙流?

问题描述 投票:1回答:1

我已经将流转换为字符串,但是我想让它只给我byte []。这是我的代码

    public byte[] Read()
    {
        try
        {
            byte[] myReadBuffer = new byte[1024];
            StringBuilder myCompleteMessage = new StringBuilder();
            int numberOfBytesRead = 0;

            do
            {
                numberOfBytesRead = mmInStream.Read(myReadBuffer, 0, myReadBuffer.Length);

                myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
            }
            while (mmInStream.IsDataAvailable());

            System.Diagnostics.Debug.WriteLine(myCompleteMessage, "Reading");
        }
        catch (IOException ex)
        {
            System.Diagnostics.Debug.WriteLine("Input stream was disconnected", ex);
        }

        return null;
    }
c# bluetooth stream
1个回答
0
投票

您可以从一个单独的数组中的所有中间缓冲区收集数据。我正在使用ArrayList收集所有缓冲区数据。接收到数据后,我们将ArrayList转换为数组。

public byte[] Read()
{
    try
    {
        byte[] myReadBuffer = new byte[1024];
        StringBuilder myCompleteMessage = new StringBuilder();
        int numberOfBytesRead = 0;
        var finalByteList = new ArrayList<byte>();

        do
        {
            numberOfBytesRead = mmInStream.Read(myReadBuffer, 0, myReadBuffer.Length);
            finalByteList.AddRange(myReadBuffer)
            myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
        }
        while (mmInStream.IsDataAvailable());

        // here is the final array of bytes
        var finalByteArray = finalByteList.ToArray();

        System.Diagnostics.Debug.WriteLine(myCompleteMessage, "Reading");
    }
    catch (IOException ex)
    {
        System.Diagnostics.Debug.WriteLine("Input stream was disconnected", ex);
    }

    return null;
}
© www.soinside.com 2019 - 2024. All rights reserved.