Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > Raw Socket
【标  题】:Raw Socket
【关键字】:Raw,Socket
【来  源】:http://blog.csdn.net/antter/archive/2007/02/27/1515814.aspx

Raw Socket

Your Ad Here
int _tmain(int argc, _TCHAR* argv[])
    {
    
try

        {
    WSADATA wsaData;
    WSAStartup(MAKEWORD(
2,2),&wsaData);
    SOCKET s;
    s
=
socket(AF_INET,SOCK_RAW,IPPROTO_IP);
    
char name[256
];
    gethostname(name,
sizeof
(name));
    hostent
* host=
gethostbyname(name);
    sockaddr_in localAddr;
    memset(
&localAddr,0,sizeof
(localAddr));
    localAddr.sin_family
=
AF_INET;
    localAddr.sin_port
=0
;
    localAddr.sin_addr
=*(in_addr*)host->h_addr_list[0
];
    
if(SOCKET_ERROR==::bind(s,(sockaddr*)&localAddr,sizeof
(localAddr)))
        {
        throwLastError();
        }

    DWORD returned
=true
;
    
if(SOCKET_ERROR==ioctlsocket(s,SIO_RCVALL,&
returned))
        {
        throwLastError();
        }
    
bool flag = true
;
    setsockopt(s, IPPROTO_IP, IP_HDRINCL, (
char*&flag, sizeof
(flag));
    
char buf[65536
];
    ProcessPacket pp;
    thread_group tg;
    tg.create_thread(boost::bind(
&ProcessPacket::process,&
pp));
    tg.create_thread(boost::bind(
&ProcessPacket::process,&
pp));
    tg.create_thread(boost::bind(
&ProcessPacket::processReady,&
pp));
    tg.create_thread(boost::bind(
&ProcessPacket::process,&
pp));
    tg.create_thread(boost::bind(
&ProcessPacket::process,&
pp));
    
while(true
)
        {
        
int rt=0
;
        rt
=recv(s,buf,sizeof(buf),0
);
        
if(SOCKET_ERROR==
rt)
            {
            cout
<<getLastError()<<
endl;
            
continue
;
            }
        Packet packet;
        packet.assign(buf);
        pp.pushQueue(packet);
        }
    closesocket(s);
    WSACleanup();
        }
    
catch(exception&
 e)
        {
        cout
<<e.what()<<
endl;
        }
    
return 0
;
    }
 
测试你的杀毒软件是不是垃圾:【上一篇】
Hello Ajax!:【下一篇】
【相关文章】
  • MUI C++ Socket Library
  • ACE中Socket IPC通讯包装类族
  • Java Socket 样例程序(客户端)
  • Socket + ThreadPool的例子
  • Linux C--利用Socket、多线程批量生成静态网页
  • SOCKET之重叠I/O模型
  • 关于J2ME中drawRegion存在的bug
  • 网络蜘蛛(crawlers) ,SEO,网络公关等相关资源与工具的收集与整理
  • Linux socket注意事项
  • WinSocket模型的探讨——漫谈
  • 【随机文章】
  • 【电影服务器架设指南】
  • 网络广告迎来新掘金浪潮 广告价格不断上升
  • Struts-避免重复刷新[小试]
  • fc4桌面应用的(转载)
  • 《刀剑OL》23级女妖加成连招
  • 详细设计说明书
  • 图片上传的WebForm(自动生成所略图)
  • ClassLoader点滴
  • 在Apache服务器上运行mod_perl
  • 用PHP构建一个留言本
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.