首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 游戏天堂 > 游戏开发 > 第十章 原始套接口 ----------------------第一节 创建原始套接口
【标  题】:第十章 原始套接口 ----------------------第一节 创建原始套接口
【关键字】:----------------------
【来  源】:http://blog.csdn.net/advancedchan/archive/2007/01/24/1492597.aspx

第十章 原始套接口 ----------------------第一节 创建原始套接口

  使用原始套接口的第一步是创建套接口。你可以使用socket或用WSASocket来创建。注意对于Windows 95, Windows 98, and Windows Me来说,在Winsock里没有目录条目的IP有SOCK_RAW套接口类型,可是,这不能防碍你创建这种套接口。它的意思是你不通过使用一个WSAPROTOCOL_INFO结构来创建一个原始套接口。返回第二章中查阅关于通过使用函数WSAEnumProtocols和WSAPROTOCOL_INFO结构体列举协议条目的消息。你必须自己在套接口创建中指定SOCK_RAW标记。下面的代码片段展示了在IP协议下使用ICMP创建一个原始的套接口。
SOCKET    s;
s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
// Or
s = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0,
    WSA_FLAG_OVERLAPPED);
if (s == INVALID_SOCKET)
{
    // 套接口创建失败
}
当创建一个原始套接口时,被调用的套接口协议参数在IP头里变成了协议值。如果一个原始AF_INET6套接口用协议值66创建,那么IPv6对于输出包会包含66在下一个头域里。

  因为原始套接口提供了实现下线传输的功能,所以他被有不良目的所使用,进而在Window NT中安全成了一个问题。因此所以,只有管理员组中的成员才能创建SOCK_RAW类型的套接口。任何人都能在Windows NT创建一个原始的套接口,但是非管理员不能做任何事。因为绑定的API用WSAECCES会失败。Windows 95, Windows 98, and Windows Me没有增加任何限制。

  为在Windows NT上这种限制下工作,你可以通过创建下列注册变量和设置它的一整型值1为一个DWORD类型使检查原始套接口的安全性功能失效。

HKEY_LOCAL_MACHINE\System\CurrentControlSet
    \Services\Afd\Parameters\DisableRawSecurity
注册表改变以后,你需要重启可以机器。

  在创建套接口代码的例子中,我们使用了ICMP协议,但是你也可以分别通过IPPROTO_IGMP, IPPROTO_UDP, IPPROTO_IP, 或 IPPROTO_RAW来使用IGMP, UDP, IP, 或 raw IP。无论如何,注意在Windows 95(with Winsock 2), Windows 98, and Windows NT 4上,在创建原始套接口你只能够使用IGMP and ICMP
 creating raw sockets. The protocol flags IPPROTO_UDP, IPPROTO_IP, and IPPROTO_RAW require the use of the socket option
 IPPROTO_UDP, IPPROTO_IP, and IPPROTO_RAW协议标志的要求使用套接口选择IP_HDRINCL,这在那些平台上不支持。Windows Me , Windows 2000和后来版本支持IP_HDRINCL,所以它可能实现IP头(IPPROTO_RAW),TCP头(IPPROTO_TCP),和UDP头(IPPROTO_UDP).
 header (IPPROTO_UDP).
  一但使用合适的协议标志创建了原始套接口,你能够在send和receive调用中使用套接口句柄。当创建原始套接口,IP头会被包含在任何接收返回的数据里,而不管IP_HDRINCL选项是否被设置。应用程序会知道IP头的结构和确定IP头的长度进而找到在结收缓冲的有效负载数据。 

Oracle SQL 性能优化技巧:【上一篇】
如果2007年的业界发生一个改变的话,你希望它是什么?:【下一篇】
【相关文章】
  • 最新征途木马专杀工具-------------------------SMSS.exe
  • MPI并行程序开发设计----------------------------------并行编程模型和算法等介绍
  • 【随机文章】
  • Oracle数据库的完整性约束规则
  • 编程的乐趣之Flash ActionScript 篇
  • Expression重装上阵以及WPF/e新鲜出炉
  • Windows Me 提速良方
  • 矩形点的排序问题。
  • 查找文件所在目录
  • 完成端口的一个简单封装类
  • Web服务小知识
  • 使用MS SQL7的LINKED SERVER第二篇
  • sqlserver锁机制(摘抄)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.