Я всегда получаю сообщение об ошибке, когда пытаюсь записать outputtream> 128kb
Я пишу outputtream через каждые 8192 байта строки, и каждый раз, когда байты превышают 128kb, код всегда привязывается к os.write (), а затемПримерно через 5 минут я получил IOException.
ParcelFileDescriptor[] payloadPipe = ParcelFileDescriptor.CreatePipe();
Payload payload = Payload.FromStream(payloadPipe[0]);
String deviceId = EndpointId;
var result = ConnectionsClient.SendPayload(deviceId, payload);
os = new ParcelFileDescriptor.AutoCloseOutputStream(payloadPipe[1]);
int textlength = Text.Length;
int cutLength = 8192;
try
{
for (int i = 0; i < textlength; i += cutLength)
{
string newtext = "";
if (i + cutLength < textlength)
{
try
{
newtext = Text.Substring(i, cutLength);
}
catch (System.Exception)
{
throw;
}
}
else
{
newtext = Text.Substring(i, textlength % cutLength);
}
try
{
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
os.Write(encoding.GetBytes(newtext));
os.Flush();
}
catch (Java.IO.IOException ex)
{
string asd = ex.ToString();
sendQueue2.Add(PayloadsQueue);
}
}
}
catch
{
INearbyListener.OnPayloadSendFailure();
}
finally
{
try
{
os.Close();
}
catch
{
}
}
В Android Studio работает, но когда я пытаюсь в xamarin, всегда выдает ошибку