【发布时间】:2017-06-28 23:18:08
【问题描述】:
我需要通过 TCP 连接传输一个字符串。为此,我一次性序列化了我的对象(超过 10000 行列表),没有意图。但是大字符串不会传输(据我所知,由于缓冲区大小)。所以 MSDN,在这个页面 (https://docs.microsoft.com/ru-ru/windows/uwp/networking/sockets) 上说我使用 IBuffer 来传输我的分割笔画。这是一个代码:
// 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() 方法是什么?如何准备我的中风数据包?
编辑:我找到了使用 Albahari 编写的 DataReader 和 DataWriter 的解决方案。(第 16 章结束)。
【问题讨论】:
-
您的问题似乎已经解决。为了看清楚或者方便更多人,可以answer your own question。
标签: c# tcp network-programming uwp