Socket IOControl

百里行者 2011-06-29 09:43:59
const uint KEEPALIVESEC = 10;
Socket socketbase = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
uint dummy = 0;
int size = System.Runtime.InteropServices.Marshal.SizeOf(dummy);
byte[] options = new byte[size * 3];
BitConverter.GetBytes((uint)1).CopyTo(options, 0);
BitConverter.GetBytes(KEEPALIVESEC * 1000).CopyTo(options, size);
BitConverter.GetBytes(KEEPALIVESEC * 1000).CopyTo(options, size * 2);
int x = BitConverter.ToInt32(options, 0);
socketbase.IOControl(IOControlCode.KeepAliveValues, options, null);

这里的options长度是12,说是“操作要求的输入数据”
BitConverter.GetBytes((uint)1)=1,0,0,0
BitConverter.GetBytes(KEEPALIVESEC * 1000)=16,39,0,0
高手来说说,这个options,还有最后一个参数,到底干吗用的?
...全文
276 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

111,092

社区成员

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

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

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