是否有可能拥有像TCP一样的NetworkStream,但在UDP中?像UDP一样流UDP?
我知道UDP不允许检查和类似的东西。
但我不知道是否有可能拥有它,所以你可以在Stream中写入(而不是手动将Byte数组分成适合包的大小)。
我只是想知道这个原因,这将是很好的测试和实验。
是否有可能拥有像TCP一样的NetworkStream,但在UDP中?像UDP一样流UDP?
我知道UDP不允许检查和类似的东西。
但我不知道是否有可能拥有它,所以你可以在Stream中写入(而不是手动将Byte数组分成适合包的大小)。
我只是想知道这个原因,这将是很好的测试和实验。
我平时这样的:
var writer = new StringWriter();
writer.WriteLine("Stuff!");
writer.WriteLine("Things!");
...
var bytes = new ASCIIEncoding().GetBytes(writer.GetStringBuilder().ToString());
_udpClient.Send(bytes, bytes.Length, _host, _port);
在阅读方面,你可以这样做:
var bytes = _udpClient.Receive(ref remoteEP);
var packetString = new ASCIIEncoding().GetString(bytes);
var reader = new StringReader(packetString);
reader.ReadLine(); // Stuff!
reader.ReadLine(); // Things!
不完全流(在内存中,如果你有很多的内容字节数组可以吸)但是这对我来说只适合小包装。
请注意,在我的应用程序中,如果数据包丢失或不按顺序到达,那就很好了。这对你的应用程序来说也是如此,否则UDP不适合你。您将内容视为“流式传输”的事实表明,您需要以相同的顺序收到您发送的所有内容。
如果你不知道边界在哪里,你可以忍受数据包可能无序到达的事实吗? –
这是测试,所以是:) – Zerowalker