c# - UDP "Connect"- C# 中的速度

标签 c# performance udp

我分析了一些样板 UDP 代码,速度非常适合仅发送少量数据(这是我的意图)。

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

然后发送几乎没有 1 毫秒,因为它的速度非常快: Byte[] sendBytes = Encoding.ASCII.GetBytes("有人吗?");

udpClient.Send(sendBytes, sendBytes.Length);

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

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

有机会提高“连接”速度吗?

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

最佳答案

udpClient.Connect 设置默认的主机名和端口,因此您随后可以在不指定它们的情况下调用 Send。花时间的是名称解析 - 将 HOSTNAME 转换为 IP 地址。

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

关于c# - UDP "Connect"- C# 中的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8567392/

相关文章:

javascript - 如何避免页面刷新时调用js函数

c# - 全屏显示图像

c# - 从流的开头读取一些字节而不改变 C# 中的位置

c# - 监视特定文件关闭 c#

c++ - Linux 应用程序无法从 169.254.x.x(本地链接)获取 UDP 消息

c - 在UDP服务器编程中如何将传入的udp客户端与套接字绑定(bind)?

c - 原始 LWIP UDP 广播

Mysql每日性能报告

c++ - 调试 CPU 缓存

sql - 截断表和更新统计信息