2017-02-10 3 views
1

Мне нужно передать строку по TCP-соединению. Для этого я сериализую свой объект (более 10000 строк) одним махом, без намерения. Но большая строка не будет передаваться (как я понял из-за размера буфера). Итак, MSDN, на этой странице (https://docs.microsoft.com/ru-ru/windows/uwp/networking/sockets), скажут мне, чтобы использовать IBuffer для переноса моего разделенного удара. Вот код:IBuffer в UWP для сообщений TCP

// More efficient way to send packets. 
// This way enables the system to do batched sends 
IList<IBuffer> packetsToSend = PreparePackets(); 
var outputStream = stream.OutputStream; 

int i = 0; 
Task[] pendingTasks = new Tast[packetsToSend.Count]; 
foreach (IBuffer packet in packetsToSend) 
{ 
pendingTasks[i++] = outputStream.WriteAsync(packet).AsTask(); 
} 
// Now, wait for all of the pending writes to complete 
    await Task.WaitAll(pendingTasks); 

Что такое метод PraparePackets()? Как подготовить пакеты от моего удара?

Редактировать: Я нашел решение с DataReader и DataWriter, написанное в Albahari (конец 16 главы).

+0

похоже, что вы уже решили свою проблему. Для того, чтобы смотреть ясно или удобно больше людей, вы можете [ответить на свой вопрос] (http://stackoverflow.com/help/self-answer). –

+0

Благодарим вас за поддержку – AlfredBauer

ответ

0

Я нашел решение с DataReader и DataWriter, написанное в Albahari (конец 16 главы).

Смежные вопросы