网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | 防火墙 | IDS/IPS | VPN | PKI | Honeypot | Hacker/Intruder | 黑客技术 | 破解技术 | 加密技术 | 病毒防护 | 木马 | 反垃圾邮件 | 反流氓软件 | 漏洞 | 无线安全 | UNIX | Windows | 安全编程 | 安全软件 | TPM/TCG | 数据恢复 | 企业信息安全 | 个人信息安全
 当前位置: Home > 安全编程 > 网络编程 > 文章  
原始套接字透析之Raw Socket基础
文章来源: 天极开发 文章作者: 宋宝华 发布时间: 2006-11-12   字体: [ ]
 

  函数的返回值为实际发送的字节数,如果返回SOCKET_ERROR,可以通过WSAGetLastError()获得错误原因。请看下面的示例:

int bwrote = sendto(sd, (char*)send_buf, packet_size, 0, (sockaddr*) &dest,
sizeof(dest));
if (bwrote == SOCKET_ERROR)
{
 //…发送失败
 if(WSAGetLastError()==…)
 {
  //…
 }
 return - 1;
}
else if (bwrote < packet_size)
{
 //…发送字节 < 欲发送字节
}

  Raw Socket接收报文

  接收报文的函数为:

int recvfrom(
 SOCKET s, //套接字句柄
 char* buf, //接收缓冲区
 int len, //缓冲区字节数
 int flags, //方式标志
 struct sockaddr* from, //源地址
 int* fromlen
);

  或

int recv(
 SOCKET s, //已经建立连接的套接字句柄
 char* buf,
 int len,
 int flags
);

  recv()函数的第1个参数只能是一个已经建立连接的套接字句柄,所以这个函数就不再需要源地址参数输入。

  函数的返回值为实际接收的字节数,如果返回SOCKET_ERROR,我们可以通过WSAGetLastError()函数获得错误原因。请看下面的示例:

int bread = recvfrom(sd, (char*)recv_buf, packet_size + sizeof(IPHeader), 0,
(sockaddr*) &source, &fromlen);
if (bread == SOCKET_ERROR)
{
 //…读失败
 if(WSAGetLastError()==WSAEMSGSIZE)
 {
  //…接收buffer太小
 }
 return - 1;
}

 
推荐文章
·洪水攻击原理及代码实现全攻略(
·原始套接字透析之综合实例:网络
·原始套接字透析之实现IP地址欺骗
·原始套接字透析之ARP欺骗
·原始套接字透析之实现包分析
·原始套接字透析之实现sniffer
·原始套接字透析之实现路由欺骗
·原始套接字透析之ICMP拒绝服务攻
·原始套接字透析之实现Ping
·黑客之旅 -- 原始套接字透析之前
 

 
共6页: 上一页 [1] [2] [3] 4 [5] [6] 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·原始套接字透析之ARP欺
·洪水攻击原理及代码实现
·原始套接字透析之综合实
·原始套接字透析之实现Pi
·黑客之旅 -- 原始套接字
·原始套接字透析之实现路
·原始套接字透析之实现包
·原始套接字透析之ICMP拒
相关分类
相关文章
·原始套接字透析之实现Pi
·黑客之旅 -- 原始套接字
·原始套接字透析之ICMP拒
·原始套接字透析之实现路
·原始套接字透析之实现sn
·原始套接字透析之实现包
·原始套接字透析之ARP欺
·原始套接字透析之实现IP
更多...
 
 

Copyright(c) 2001-2008 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统
$Id: article_article.html,v 1.3 2007/02/10 12:00:37 yjs Exp $