程序中执行打到Dns.GetHostByName(IP)时报错“由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作”,只在个别电脑上才在执行到这句时报错,大部分都是正常的。求指点解决。
是不是这些机器有些其它程序上使用了socket没有释放?socket资源是全局共享的,系统没有剩余的socket来处理你的程序的DNS操作了。
遇到这种情况的话一般重启一下机器就好了。
重启电脑没有作用,这种情况能在我的程序中做处理吗?(我自己推测也肯能是注册表什么的出问题了)
@末流:
重启也没用的话,你那台机器本身就有问题吧,ping 127.0.0.1 看看正常不? 其它网络功能能用吗?
硬件基础环境没就绪的话,你没法给它纠错的。顶多报个错提示下用户。
@天方: 谢谢你的回答。其他网络功能是可以正常使用的。我能在我的代码中对系统socket资源释放吗?或者我又什么办法或者工具监控系统socket吗?