Я начинающий программист, но мне нравятся испытания. Во время этих испытаний я столкнулся с проблемой.
Я создаю устройство на основе Raspberry Pi, хочу управлять им со смартфона. Выбор пал на связь через Bluetooth. Я без проблем соединяю и соединяю два устройства, отправляю данные из Android в RPi без проблем. Проблема возникает при отправке данных из RPi, короткие сообщения отправляются правильно, но при отправке большего количества данных возникает проблема. InputStream теряет 990 байт, я заметил, что один пакет данных - это столько же байтов.
Вот мой код
public static void ListenForData()
{
InStream = socket.InputStream;
byte[] dataBuffer = new byte[1024];
int dataBytes;
while (true)
{
byte[] fileBuffer;
try
{
using (var ms = new MemoryStream())
{
while (InStream.CanRead || InStream.IsDataAvailable())
{
dataBytes = InStream.Read(dataBuffer);
ms.Write(dataBuffer, 0, dataBytes);
fileBuffer = ms.ToArray();
File.WriteAllBytes(Path + "c.jpg", fileBuffer);
}
}
}
catch (Exception e)
{
Console.WriteLine(e);
break;
}
}
}
Я использую пример BluetoothChat для отправки сообщений, и он работает в их случае, но отправка изображения, например, приводит к ошибке, описанной выше.