我们该怎么做才能将C#Silverlight Tcp Packet整合在一起?

时间:2010-07-30 06:58:56

标签: silverlight tcp

当我们向客户端发送大量数据时,它的ReceiveAsync事件被多次调用,并且每次都会得到一些数据包。
我们该怎么做才能将C#Silverlight Tcp Packet整合在一起并通过一个事件? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

你做不到。 TCP的本质是数据被分解成数据包。继续接收数据,直到你得到整个消息(无论是什么)。一些选项:

  • 首先在邮件本身之前发送邮件的大小。
  • 发送消息时关闭连接(因此客户端基本上可以读取,直到连接关闭)
  • 添加分隔符以指示消息的结束

我一般不喜欢最后的选项,因为它意味着“理解”你正在阅读的消息,这可能很棘手 - 并且可能意味着你需要添加转义序列等,如果你的分隔符可以自然地出现在消息中。