【发布时间】:2015-09-10 19:23:11
【问题描述】:
一个小应用程序,我有一个蓝牙设备,它会在我们做的时候发送连续的数据await _socket.OutputStream.WriteAsync(data)
但是我无法通过 windows phone 连续读取数据。
private async void writeData()
{
string newLabel = "startReading,RFID\n";
var data = GetBufferFromByteArray(Encoding.UTF8.GetBytes(newLabel));
await _socket.OutputStream.WriteAsync(data);
Thread.Sleep(500);
readData();
}
private async void readData()
{
var buffer = new Windows.Storage.Streams.Buffer(2048);
var receivedSize = await _socket.InputStream.ReadAsync(buffer, 2048, InputStreamOptions.ReadAhead);
// string s = Encoding.UTF8.GetString(receivedSize,0,receivedSize.Length);
var dr = DataReader.FromBuffer(buffer);
List<byte> lst = new List<byte>();
byte[] bytes = new byte[] { };
for (int i = 0; i < 2048; i++)
{
//bytes[i]=dr.ReadByte();
lst.Add(dr.ReadByte());
}
byte[] dataAsBytes = lst.ToArray();
// byte[] dataAsBytes = lst.SelectMany(s => System.Text.Encoding.UTF8.GetBytes(s)).ToArray();
string s3 = Convert.ToBase64String(dataAsBytes);
string result = System.Text.Encoding.UTF8.GetString(dataAsBytes, 0, 2048);
Data_txtblcx.Text = result.ToString();
}
【问题讨论】:
-
我可能会帮助你,但你没有提供足够的信息。
_socket定义在哪里,它是什么?writeData和readData是如何调用的?应用程序在做什么,您期望/试图让它做什么?考虑阅读stackoverflow.com/help/how-to-ask
标签: c# .net windows-phone-8 async-await