我分析了一些样板 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/