积极答复者
如何正确使用Socket.IOControl(Int32,Byte[],Byte[])

问题
-
.NET 3.5/2.0 for CE都没有IOControlCode的枚举,也就是说只能用IOControl的第一个重载。
Socket.IOControl的定义是Socket.IOControl(Int32,Byte[],Byte[])
然而IOControl的控制码在WINAPI里是dword也就是uint32……
比如说KeepAlive的Code就是0x98000004,直接填进去的话就报错。
包括IOControlCode这个枚举自己用的都是long类型……
看了一下从1.0到4.0这个函数一直都是这样的,请问有什么办法能够正确使用这个函数么?
答案
-
您好!
这里api和.NET中的类参数类型不一致,你调用.NET类库,必须按.NET类库中的要求传递参数,没有太好的办法
周雪峰
- 已建议为答案 Zhanglong WuMicrosoft contingent staff, Moderator 2016年2月18日 9:45
- 已标记为答案 CaillenModerator 2016年2月19日 3:28
全部回复
-
你好,
关于这个函数的使用,微软的官方有给过例子,请参考下面的连接。
https://msdn.microsoft.com/zh-cn/library/ms145152(v=vs.90).aspx
Best regards,
Cole Wu
-
您好!
这里api和.NET中的类参数类型不一致,你调用.NET类库,必须按.NET类库中的要求传递参数,没有太好的办法
周雪峰
- 已建议为答案 Zhanglong WuMicrosoft contingent staff, Moderator 2016年2月18日 9:45
- 已标记为答案 CaillenModerator 2016年2月19日 3:28