首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#中的UDP“连接”-Speed

C#中的UDP“连接”-Speed
EN

Stack Overflow用户
提问于 2011-12-20 04:51:18
回答 2查看 1.8K关注 0票数 3

我分析了一些样板UDP代码,对于只发送少量数据(这就是我的意图)来说,速度非常好。

但是与"send“方法相比,"connect”方法“非常慢”。这需要50 - 80毫秒:udpClient = new UdpClient(); udpClient.Connect("HOSTNAME", 11000);

发送几乎不需要1ms的时间,因为它的速度太快了:Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");

udpClient.Send(sendBytes, sendBytes.Length);

我想知道这个"connect“方法是做什么的,因为UDP在设计上是无连接的。

如果我省略了connect方法,那么每次调用发送都会慢一些:udpClient.Send(sendBytes, sendBytes.Length,"HOSTNAME",1100);

有没有可能提高“连接”的速度?

免责声明:我知道UDP是不可靠的,但对于我的应用程序(客户端统计数据,无论如何都不是100%准确的),即使软件包顺序错误,甚至一些丢失的软件包也不会杀死我,这都无关紧要。

EN

回答 2

Stack Overflow用户

发布于 2011-12-20 05:01:12

udpClient.Connect设置默认的主机名和端口,因此随后您可以调用Send而无需指定它们。花费时间的是名称解析-将主机名转换为IPAddress。

如果您在Connect中执行一次,则不必每次发送时都执行此操作,这样会更快。

票数 6
EN

Stack Overflow用户

发布于 2011-12-22 03:19:33

我的结论如下:

使用C#无法使UDP更快。具有标准MSDN样本的UdpClient是最佳选择。

但是当你点击“连接”(参见http://msdn.microsoft.com/en-us/library/windows/desktop/ms737625(v=vs.85).aspx )时,速度与托管UdpClient的速度大致相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8567392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档