我正在编写一个通过.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套接字库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)