我正在阅读有关Using TCP的文档,并试图理解TCP从服务器接收数据的简单程度。让服务器向每个连接的客户端发送数据流。
case Received(data) => // do some with data, where data: ByteString
那么data
是什么。字节数据的大小是多少?我的意思是客户不断收到一些数据。每个data
包含多少个字节?在哪里配置?
答案 0 :(得分:2)
它是随意的,没有在任何地方配置。你得到的任何你已经得到的东西,当它决定给你一些数据的时候,你已经得到了实施。
处理此类通知的典型方法如下:
如果我们从上次通知中获得了任何已保存的数据,请将新数据附加到已保存数据的末尾。
如果我们根据我们正在实施的协议没有完整的消息,请保存下一个通知的剩余数据,重新启动通知并停止。
处理消息。
如果我们没有剩余的数据(也就是说,我们只有一个应用程序消息而不是更多的字节),请注意缓冲区为空,重新启动通知并停止。
使用剩余数据转到第2步。