使用 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次,不会报错,这是为什么呢?
应该是服务器的socket句柄资源用尽了,最好检查一下服务器配置。也就是之前发的请求所占的资源还没来得及释放第二次请求又到了,循环次数太多导致资源不够用了