【发布时间】:2013-03-05 00:32:12
【问题描述】:
我正在使用 UDP(C 语言)实现一个小型应用程序。服务器以给定数量的块(例如 100 字节/调用)将给定文件中的数据发送给客户端。客户端下载文件并将其保存在某处。问题是客户端可以接收一个参数,说明要读取/调用多少字节。
我的问题是当服务器发送 100 字节/调用,而客户端设置为只读 15 字节/调用。其他 85 个字节丢失,因为消息已从 UDP 队列中删除。
有没有办法以块的形式读取这些消息,而无需将它们从队列中删除,直到它们被完全读取?
【问题讨论】:
-
更改您的客户端服务器协议以避免两端相互混淆
-
那很好,但我没有创建协议。我必须为我的计算机网络课程和协议做这个小应用程序。
-
好吧,让我换一种说法。 “当服务器发送 100 字节/调用,而客户端设置为只读 15 字节/调用”您必须控制一端或另一端。只是不要设置客户端和服务器读取错误的字节数!
-
真正的问题是,为什么客户端只读取 15 个字节开始?显然,该协议需要比所使用的更大的缓冲区。