免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4480 | 回复: 2
打印 上一主题 下一主题

[VMware] 在vmware里面接收原始套接口不能接收数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-13 14:17 |只看该作者 |倒序浏览
5可用积分
环境host:SLACKWARE;
vmware6:FREEBSD
在BSD下面我建立了一个RAWSOCK,从该套接口写入一个TCP SYN包,等待对方的回复包。但是发现程序就阻塞在read处了,根本没有接收到任何包信息,同样的程序在SLACKWARE下是可以收到对方的RST或者ACK包的。

        rawsock=socket(PF_INET, SOCK_RAW, IPPROTO_TCP);
        if( rawsock < 0) {
                perror("socket");
                exit(1);
        }

        syn(); //这里是创建TCP SYN包的地方。然后往rawsock里面写。
       
        len=read(rawsock, buff, 8192); //发现这里始终阻塞,没有数据读上来。

论坛徽章:
0
2 [报告]
发表于 2007-12-13 15:20 |只看该作者
包含TCP/UDP的IP包必须从链路层读入。为什么LINUX又可以接收到呢?

论坛徽章:
0
3 [报告]
发表于 2008-01-09 17:01 |只看该作者
以前我写监控数据包时候也碰到这样的问题...是因为BSD不允许这样了,而WIN从XP SP2开始也不可以这样了,用BSD的BPF把....
WIN下就可以用winpcap

[ 本帖最后由 bsdliuhaoran 于 2008-1-9 17:02 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP