ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
得到本机socket选项的全部默认值
最近写一些在网络上捕获数据包的程序,用到了RawSocket,其中要用到SetSocketOption()

原型为:SetSocketOption(SocketOptionLevel.IP,SocketOptionName.HeaderIncluded, 1);

第三个参数为什么要是 1 呢?原因是默认的值是 0 ,1表示打开这个选项。

那么还有多少这样的选项呢?答案是:很多,有200项左右。

于是有了下面的代码,它可以看一看你使用socket时每个option的默认值。知道了这些,你就

可以有的放矢的SetSocketOption()了。



Code:



---------------------------------------------------------------------------



namespace SKY.SocketOptions

{

using System;

using System.Net.Sockets;

public class SocketOptions

{

public static void Main(string[] args)

{

int count = 0;

//使用那种构造函数并不重要,何值也不重要,无非是CLR分配一些相关的结构

//结构是重要的

Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);



Type sol = typeof(SocketOptionLevel);

Type son = typeof(SocketOptionName);

Console.WriteLine(" num Level Name DefaultOption");

Console.WriteLine("----------------------------------------------------------------");



foreach(string s1 in Enum.GetNames(sol))

{

foreach( string s2 in Enum.GetNames(son))

{

count++;

try

{

SocketOptionLevel o1 = (SocketOptionLevel)Enum.Parse(sol,s1);

SocketOptionName o2 = (SocketOptionName)Enum.Parse(son,s2);

Console.Write(" {0} {1:-10} {2:-30}",count,s1,s2);

//Get Values

Console.Write(" {0}
",socket.GetSocketOption(o1,o2));

}

catch(ArgumentNullException)

{

Console.Write(" NULL
");

}

catch(ArgumentException)

{

Console.Write(" NULL
");

}

catch(SocketException)

{

Console.Write(" NULL
");

}

}



}

Console.WriteLine("----------------------------------------------------------------");

/*

Console.WriteLine("-------------SocketOptionLevel---------------------------");

foreach ( string s1 in Enum.GetNames(sol))

{

Console.WriteLine( "{0}",s1);

}

Console.WriteLine("-------------SocketOptionName----------------------------");

foreach( string s2 in Enum.GetNames(son))

{

Console.WriteLine( "|{0}",s2);

}

Console.WriteLine("------------------END------------------------------------");

*/

Console.ReadLine();

}

}

}



---------------------------------------------------


 
 
本站关键词:
|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司||东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司||东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司||东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司||东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司||东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司||东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司||东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司||东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司||东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有