如何在没有pipe理员权限的情况下初始化Windows套接字库

如何在没有pipe理员权限的情况下初始化Windows套接字库,第1张

概述如何在没有pipe理员权限的情况下初始化Windows套接字库

我正在编写一个通过.NET调用OpenOffice.org API的程序。 http://wiki.openoffice.org/wiki/documentation/DevGuIDe/ProUNO/Cli/Writing_ClIEnt_Programs中的文档说:

对于OOo 3.x代码是这样的:

//C# example for OOo 3.x //Workaround which is needed when using a socket connection //This will initialize the windows socket library. System.Net.sockets.socket s = new System.Net.sockets.socket( AddressFamily.InterNetwork,SocketType.Raw,ProtocolType.IP);

在windows XP和windows Server 2003上工作正常,但在windows 7上失败:

尝试以访问权限禁止的方式访问套接字

“GodMode”文件夹内容c#

为什么fileSystemInfo不声明GetAccessControl方法?

由pID零拥有的TCP连接

windows从多图标文件中select错误的图标,并自我渲染以更正大小

stringinput从文本框if / else

我知道是因为套接字types是原始的,程序没有与pipe理权限运行。 所以我的问题是:我怎样才能初始化windows套接字库没有pipe理员权限?

开发以pipe理员身份运行命令的应用程序

将Visual Studio 2005 sln迁移到2008,在liB环境variables中使用vc98path警告,如何解决?

所有的.NET框架版本都包含在新的windows版本中?

在C#中将USB设备名称映射到COM端口?

使用.net紧凑框架进行本地化

访问RAW套接字需要windows 2000及更高版本的管理员权限,并在MSDN上进行了描述:

TCP / IP原始套接字

原始套接字提供了 *** 纵底层传输的能力,因此它们可以用于构成安全威胁的恶意目的。 因此,只有administrators组的成员才能在windows 2000及更高版本上创建SOCK_RAW类型的套接字。

注意要使用SOCK_RAW类型的套接字,需要管理权限。 运行使用原始套接字的Winsock应用程序的用户必须是本地计算机上的管理员组的成员,否则原始套接字调用将失败,错误代码为WSAEACCES。 在windows Vista和更高版本上,在套接字创建时强制访问原始套接字。 在早期版本的windows中,在其他套接字 *** 作期间,强制访问原始套接字。

没有办法绕过这个限制。 另一方面,如果你的意图是一般初始化Winsock,那么你不需要创建一个RAW套接字来做到这一点。 创建一个TCP( SocketType.Stream和ProtocolType.TCP )或UDP( SocketType.DGram和ProtocolType.UDP )套接字,而不是限制,并且很可能是OOo实际上将在内部使用。 或者,您可以使用PInvoke直接调用Winsock的WSAStartup()函数。

总结

以上是内存溢出为你收集整理的如何在没有pipe理员权限的情况下初始化Windows套接字库全部内容,希望文章能够帮你解决如何在没有pipe理员权限的情况下初始化Windows套接字库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1285686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存