none
C# for CE6.0 中使用Socket.IOControl的一些问题 RRS feed

  • 问题

  • .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这个函数一直都是这样的,请问有什么办法能够正确使用这个函数么?

    2016年2月10日 16:18

全部回复

  • 你好,

    IOControlCode.KeepAliveValues 是枚举,你可以直接查看它的值然后使用。你可以参照下面代码尝试一下。

    int SIO_KEEPALIVE_VALS = 0x4004667F;
                socket.IOControl(SIO_KEEPALIVE_VALS, inOptionValues, null); 
    

    下面链接是关于Socket.IOControl 方法(Int32, Byte[], Byte[])的说明和示例:

    https://msdn.microsoft.com/zh-cn/library/ms145152(v=vs.110).aspx


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2016年2月23日 8:34