由于系统缓冲区或队列已满,不能执行套接字上的操作 ???

舞台中央的我 2014-07-30 02:51:46
C# 开发的 画面
有 获取机器的 名字 和IP 的机能
现在 在其中一台机器启动的时候
出现了下面的错误

'System.Net.Sockets.SocketException' のハンドルされていない例外が system.dll で発生しました。

追加情報 : システムのバッファー領域が不足しているか、またはキューがいっぱいなため、ソケット操作を実行できませんでした。

(由于系统缓冲区或队列已满,不能执行套接字上的操作)

'System.TypeInitializationException' のハンドルされていない例外が system.dll で発生しました。

追加情報 : The type initializer for "System.Net.Sockets.Socket" threw an exception.


catch 的 错误 内容是 「the type initializer for system.net.dns threw an exception 」

客户端 机器 WIn7
获得 机器IP的方法是
try
{

String ipaddress=System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0].ToString();
this.textBox1.Text = ipaddress;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
...全文
308 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xheyy_2278338083 2014-07-31
  • 打赏
  • 举报
回复
设置缓存优先级 protected void Page_Load(object sender, EventArgs e) { if (Cache["Name"] == null) { //利用Cache.Insert()方法将数据加入缓存,并设定不同的CacheItemPriority Cache.Insert("Name", "赵明录", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, null); Cache.Insert("Phone", "043184978981", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null); Cache.Insert("Position", "ASP.NET部门经理", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.Low, null); } else { //显示缓存数据, IDictionaryEnumerator CacheIDE = Cache.GetEnumerator(); int i = 1; string info = null; info += "缓存项目数据(Key / Value):" + "<br>"; while (CacheIDE.MoveNext()) { info = i.ToString() + ". "; info += CacheIDE.Key.ToString() + " : "; info += CacheIDE.Value.ToString() + "<br>"; Response.Write(info); i++; } } } }
舞台中央的我 2014-07-30
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
很多情况都会产生这个异常,你提供的信息有限,无法判断。 如果是你的程序使用socket代码通讯,看看发送的数据包是否过大。
try { String ipaddress=System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0].ToString(); this.textBox1.Text = ipaddress; } catch(Exception ex) { MessageBox.Show(ex.Message); } C# 程序 winform 上面一个按钮 把 获得的 IP 输出到 入力框里 String ipaddress=System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0].ToString(); 就这一句话 出现了 上面的错误
threenewbee 2014-07-30
  • 打赏
  • 举报
回复
很多情况都会产生这个异常,你提供的信息有限,无法判断。 如果是你的程序使用socket代码通讯,看看发送的数据包是否过大。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧