【发布时间】:2013-12-23 08:36:18
【问题描述】:
我有一个套接字,我想在其中接收多个未知长度的消息:文本、媒体、..
我看到了它是如何与 Windows.Networking.Sockets 一起工作的,似乎发件人应该先发送长度,这不是我的情况
我在 System.Net.Sockets 中看到了一些改进,但没有发现任何监听数据包接收的事件。
我的问题是:我必须不时检查套接字的数据吗?有没有更好的实现方式?
【问题讨论】:
-
TCP 101:如果没有更高级别的协议,则不能有任何大于一个字节的消息。
-
您想保存这些数据而不必知道解析它的应用程序规则吗?一种想法是一次从套接字读取一个充满数据的缓冲区,直到发送方关闭 TCP 会话。如果要分离不同类型的数据,则必须研究要支持的各种应用程序,并在收到的数据到达时对其进行解析。然后你就可以知道你是否已经完成了一个工作单元。
标签: c# sockets windows-phone-8 communication tcpclient