C# 报错:“由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。”
使用 C# 进行网络编程,为什么以下这么简单的代码会报错?
class Program {
private static IPEndPoint point = new IPEndPoint(IPAddress.Parse("60.20.63.12"),11500);
static void Main() {
var client = new UdpClient(15921);
var data = new byte[1];
for (int i = 0; i < 100000; i++) {
client.Send(data,1,point); // “由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。”
}
Console.ReadLine();
}
}
当次数不多时,比如只循环10000次,不会报错,这是为什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
应该是服务器的socket句柄资源用尽了,最好检查一下服务器配置。也就是之前发的请求所占的资源还没来得及释放第二次请求又到了,循环次数太多导致资源不够用了