【发布时间】:2015-03-26 18:50:13
【问题描述】:
我是 C# 的初学者,但我正在编写一个 CoAP 客户端,该客户端将同时测试多个 CoAP 服务器的吞吐量和响应时间。仅供参考,该应用程序是作为命令行程序实现的。 我使用的库是 CoAP.NET。
一切都很顺利,直到我想将默认块大小从 512 字节更改为 32 字节。
这是我对 C# 的理解失败的地方,设置位于接口 ICoapConfig 和类 CoapConfig 中。这些设置只是在某个时候神奇地加载。
我已经尝试过这样做:
CoapConfig conf = new CoapConfig();
conf.DefaultBlockSize = 32;
CoapClient client = new CoapClient(conf);
...
Request req = new Request(Method.PUT);
req.SetPayload(payload, MediaType.TextPlain);
client.Send(req);
但是块大小仍然是 512,因为消息只有在超过 512b 时才会按块传输。
DEBUG - BlockwiseLayer uses MaxMessageSize: 1024 and DefaultBlockSize:512
这是我运行程序时得到的第一行输出。
很高兴得到任何帮助:)
解决方案:
CoapConfig conf = new CoapConfig();
conf.DefaultBlockSize = 32;
...
Request req = new Request(Method.PUT);
req.SetPayload(payload, MediaType.TextPlain);
req.URI = client.Uri;
IEndPoint _clientEndpoint;
_clientEndpoint = new CoAPEndPoint(conf);
_clientEndpoint.Start();
req.Send(_clientEndpoint);
...
我真的不知道这个 EndPoint 可能是什么,但这让您在发送时可以使用所需的配置。 仅供参考:我尝试将服务器的配置设置为但没有成功。
【问题讨论】:
-
问得好。
-
谢谢!尽力了:)