System.Net.Sockets.SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试

wildmenNB 2014-04-21 03:05:46
用C#做的新建的网络原始套接字来发送数据包是出现以下错误:
“System.Net.Sockets.SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试” 求大神指导!!!!!!!!
...全文
4422 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_15714837 2014-10-15
  • 打赏
  • 举报
回复
本人已经成功解决了,问题是出现在你的访问权限不够,你使用最高用户权限访问,然后运行程序就可以了。
  • 打赏
  • 举报
回复
如果你使用.net,建议你使用封装好的高级的class,例如tcplistener、tcpclient、udpclient等等,而不是使用低级的socket。而且,高级的class封装了更高级的功能,例如tcplistener自动支持IOCP,这是低级的socket所根本不具有的。 有的人总是以为自己掌握了低级的东西就能说明一切了。其实我觉得只会低级的东西的人,往往只适合学习而不适合开发。
wildmenNB 2014-04-22
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
如果你使用.net,建议你使用封装好的高级的class,例如tcplistener、tcpclient、udpclient等等,而不是使用低级的socket。而且,高级的class封装了更高级的功能,例如tcplistener自动支持IOCP,这是低级的socket所根本不具有的。 有的人总是以为自己掌握了低级的东西就能说明一切了。其实我觉得只会低级的东西的人,往往只适合学习而不适合开发。
引用 4 楼 sp1234 的回复:
如果你使用.net,建议你使用封装好的高级的class,例如tcplistener、tcpclient、udpclient等等,而不是使用低级的socket。而且,高级的class封装了更高级的功能,例如tcplistener自动支持IOCP,这是低级的socket所根本不具有的。 有的人总是以为自己掌握了低级的东西就能说明一切了。其实我觉得只会低级的东西的人,往往只适合学习而不适合开发。
受教了
Mr_叶 2014-04-21
  • 打赏
  • 举报
回复
如果用到 SocketType.Raw 的话 添加一个管理员权限就OK了~
wildmenNB 2014-04-21
  • 打赏
  • 举报
回复
引用 1 楼 zhang1struts1yun 的回复:
引用错误,访问被禁止
具体的解决方案有没有,在VS2008上能运行没错误,但是用vs2010以上版本就有错误!!!!
zhang1struts1yun 2014-04-21
  • 打赏
  • 举报
回复
引用错误,访问被禁止
私聊与多聊、TCP运用 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using System.Net.Sockets; using System.Net; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; using System.Collections; using System.Collections.Specialized; namespace EasyChatServer { class Listener { #region 字段定义 /// /// 服务器程序使用的端口,默认为8888 /// private int _port = 8888; /// /// 接收数据缓冲区大小64K /// private const int _maxPacket = 64 * 1024; /// /// 服务器端的监听器 /// private TcpListener _tcpl = null; /// /// 保存所有客户端会话的哈希表 /// private Hashtable _transmit_tb = new Hashtable(); #endregion #region 服务器方法 /// /// 关闭监听器并释放资源 /// public void Close() { if (_tcpl != null) { _tcpl.Stop(); } //关闭客户端连接并清理资源 if (_transmit_tb.Count != 0) { foreach (Socket session in _transmit_tb.Values) { session.Shutdown(SocketShutdown.Both); } _transmit_tb.Clear(); _transmit_tb = null; } } /// /// 配置监听端口号 /// public void GetConfig() { string portParam; Console.Write("请输入监听端口,直接回车则接受默认端口8888: "); portParam = Console.ReadLine(); if (portParam != string.Empty) { if (!int.TryParse(portParam, out _port) || _port 65535) { _port = 8888; Console.WriteLine("端口号不合法,默认端口号被接受!");

110,502

社区成员

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

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

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