鍍金池/ 問答/C#  Office/ C# 報(bào)錯(cuò):“由于系統(tǒng)緩沖區(qū)空間不足或隊(duì)列已滿,不能執(zhí)行套接字上的操作?!?/span>

C# 報(bào)錯(cuò):“由于系統(tǒng)緩沖區(qū)空間不足或隊(duì)列已滿,不能執(zhí)行套接字上的操作?!?/h1>

使用 C# 進(jìn)行網(wǎng)絡(luò)編程,為什么以下這么簡(jiǎn)單的代碼會(huì)報(bào)錯(cuò)?

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); // “由于系統(tǒng)緩沖區(qū)空間不足或隊(duì)列已滿,不能執(zhí)行套接字上的操作?!?        }

        Console.ReadLine();
    }
}

VS

當(dāng)次數(shù)不多時(shí),比如只循環(huán)10000次,不會(huì)報(bào)錯(cuò),這是為什么呢?

回答
編輯回答
毀了心

應(yīng)該是服務(wù)器的socket句柄資源用盡了,最好檢查一下服務(wù)器配置。也就是之前發(fā)的請(qǐng)求所占的資源還沒來得及釋放第二次請(qǐng)求又到了,循環(huán)次數(shù)太多導(dǎo)致資源不夠用了

2017年2月7日 18:17