我爱Aspx >> Asp.Net >> 用C#的Raw Socket实现网络封包监视这里的SIO_RCVALL是指示RawSocket接收所有的数据包,在以后的IOContrl函数中要用,在下面的构造函数中,实现了对一些变量参数的初始化:
public RawSocket() //构造函数
{
error_occurred=false;
len_receive_buf = 4096;
receive_buf_bytes = new byte[len_receive_buf];
}
下面的函数实现了创建RawSocket,并把它与终结点(IPEndPoint:本机IP和端口)绑定:
public void CreateAndBindSocket(string IP) //建立并绑定套接字
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
socket.Blocking = false; //置socket非阻塞状态
socket.Bind(new IPEndPoint(IPAddress.Parse(IP), 0)); //绑定套接字
if (SetSocketOption()==false) error_occurred=true;
}
其中,在创建套接字的一句socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);中有3个参数:
第一个参数是设定地址族,MSDN上的描述是“指定 Socket 实例用来解析地址的寻址方案”,当要把套接字绑定到终结点(IPEndPoint)时,需要使用InterNetwork成员,即采用IP版本4的地址格式,这也是当今大多数套接字编程所采用一个寻址方案(AddressFamily)。
Ҷƪл˵?
利用C#实现标准的 Dispose模式[05-20]
关于C#中属性及值类性引用类型的..[05-20]
c#.net常用函数列表[05-20]
深入理解C#编程中的组件-事件-委..[05-20]
在C#中利用DirectX实现声音播放[05-20]
C#实现文件下载[05-20]
Visual C# 3.0 新特性概览 (二)[05-20]
Visual C# 3.0 新特性概览(一)[05-20]
C#中调用Windows API的要点[05-20]
c#收取邮件[05-20]
利用C#实现标准的 Dispose模式[05-20]
关于C#中属性及值类性引用类型的..[05-20]
c#.net常用函数列表[05-20]
ASP.NET程序中常用的三十三种代码[05-20]
深入理解C#编程中的组件-事件-委..[05-20]
在C#中利用DirectX实现声音播放[05-20]
ASP.NET程序中常用编程代码(一)[05-20]
为ASP.NET 2.0菜单控件增加targe..[05-20]
JavaScript去除空格的三种方法 (..[05-20]
ASP.NET程序中常用编程代码(二)[05-20]