请问在vmware虚拟机下的UBUNTU系统里,原始套接字sock_raw能否正常收发数据

xjy1204 2008-11-20 04:58:40
主系统是windowsXP,虚拟机的网卡工作模式为桥接方式
socket(PF_PACKET, SOCK_RAW, htonl(ETH_P_ALL))
套接字是用以上方式申请的
现在的现象看来好像是send正常,但是recvfrom返回的数据长度和内容好像都不对
所以想请教一下,原始套接字在vmware的虚拟网卡情况下究竟是否能正常使用,
由于比较着急,希望专家大大能帮帮我~!
...全文
188 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
geoff 2011-09-07
  • 打赏
  • 举报
回复
我和楼主的情况差不多,套接字一样,虚拟机 sendto,开发板recvfrom 可以收到,但是多了4个字节;
开发板sendto ,虚拟机recvfrom ,虚拟机收不到;
搞了两天了找不到问题,怀疑是虚拟机的问题,有没有那位兄弟遇到过这个问题的,帮帮我。。
万分感谢!!!
geoff 2011-09-07
  • 打赏
  • 举报
回复
我也有这样的问题,不知道楼主怎么解决的,能不能教教我
xjy1204 2008-11-21
  • 打赏
  • 举报
回复
问题已解决,确实可以在vmware下正常运行
虽然我还是不明白为什么昨天调试时总是有问题 @_@
xjy1204 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhoujianhei 的回复:]
应该是sendto吧
http://blog.csdn.net/tqyou85/archive/2008/10/23/3128024.aspx

只要能ping通,通信应该没问题。
[/Quote]

用的是sendto,发帖的时候笔误了

另外可能楼上两位还不大明白我的意思,
具体情况是我在XP下装了VMWARE的UBUNTU系统,
在UBUNTU系统下进行开发,机器只有一块网卡,UBUNTU的虚拟网卡使用的是桥接模式
但我使用的是rt所说的原始套接字,目的是为了完整接收/发送以太帧,
因为我和硬件设备之间的通讯没有使用IP协议,只是通过以太帧定义的私有协议
由于我不明白虚拟网卡的工作原理,所以不确定是否这样的工作模式是否能正常
我在windows下使用winpcap时是完全可以正常实现这样的通讯的,
但是在vmware下的初步测试,现象仿佛是sendto的数据硬件能正常收到,但是我的recvfrom收到的数据长度和内容都不对
我想这个问题可能需要对vmware的网卡有关原理有了解的达人才能解答了。。

还是感谢上面两位的回复~!
xjy1204 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guosha 的回复:]
应该可以,fierygnu已经几个月没有出现过了。
[/Quote]

额。。第一次来这里。。不大清楚状况
zhoujianhei 2008-11-20
  • 打赏
  • 举报
回复
应该是sendto吧
http://blog.csdn.net/tqyou85/archive/2008/10/23/3128024.aspx

只要能ping通,通信应该没问题。

zhoujianhei 2008-11-20
  • 打赏
  • 举报
回复
很奇怪发送用send,而接收用recvfrom,不一致啊。
快乐田伯光 2008-11-20
  • 打赏
  • 举报
回复
应该可以,fierygnu已经几个月没有出现过了。

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧