社区
Linux/Unix社区
帖子详情
请问在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
打赏
收藏
请问在vmware虚拟机下的UBUNTU系统里,原始套接字sock_raw能否正常收发数据
主系统是windowsXP,虚拟机的网卡工作模式为桥接方式 socket(PF_PACKET, SOCK_RAW, htonl(ETH_P_ALL)) 套接字是用以上方式申请的 现在的现象看来好像是send正常,但是recvfrom返回的数据长度和内容好像都不对 所以想请教一下,原始套接字在vmware的虚拟网卡情况下究竟是否能正常使用, 由于比较着急,希望专家大大能帮帮我~!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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已经几个月没有出现过了。
原始套接字
SOCK
_
RAW
实际上,我们常用的网络编程都是在应用层的报文的
收发
操作,也就是大多数程序员接触到的流式套接字(
SOCK
_STREAM)和
数据
包式套接字(
SOCK
_DGRAM)。而这些
数据
包都是由
系统
提供的协议栈实现,用户只需要填充应用层报文即可,由
系统
完成底层报文头的填充并发送。然而在某些情况下需要执行更底层的操作,比如修改报文头、避开
系统
协议栈等。这个时候就需要使用其他的方式来实现。 一
原始套接字
原始套接字
(
SOCK
_
RAW
)是一种不同于
SOCK
_STREAM、
SOCK
_DGRAM的套接字,它实现于
系统
核心..
原始套接字
-
SOCK
_
RAW
win
sock
et通信
原始套接字
sock
_
raw
ping程序实现
Linux 网络编程——
原始套接字
SOCK
_
RAW
通常情况下程序员接所接触到的套接字(
Sock
et)为两类: (1)流式套接字(
SOCK
_STREAM):一种面向连接的
Sock
et,针对于面向连接的TCP 服务应用; (2)
数据
报式套接字(
SOCK
_DGRAM):一种无连接的
Sock
et,对应于无连接的 UDP 服务应用。 从用户的角度来看,
SOCK
_STREAM、
SOCK
_DGRAM 这两类套接字似乎的确涵盖了 TCP/IP 应用的全部,...
【LWIP】
原始套接字
(
SOCK
_
RAW
)
通常情况下我们接触到的套接字为两类: (1)字节流套接字(
SOCK
_STREAM):面向连接的
sock
et套接字,用于TCP服务应用。 (2)
数据
包套接字(
SOCK
_DGRAM):无连接、不可靠的
sock
et套接字,用于UDP服务应用。 从用户的角度来看,
SOCK
_STREAM、
SOCK
_DGRAM 这两类套接字似乎的确涵盖了 TCP/IP 应用的全部,因为基于 TCP/IP 的应用,从协议栈的层次上讲,在传输层的确只可能建立于 TCP 或 UDP 协议之上,而
SOCK
_STREAM、
SOCK
_D
原始套接字
(
SOCK
_
RAW
)概述[转载]
大多数程序员所接触到的套接字(
Sock
et)为两类: (1)流式套接字(
SOCK
_STREAM):一种面向连接的
Sock
et,针对于面向连接的TCP服务应用; (2)
数据
报式套接字(
SOCK
_DGRAM):一种无连接的
Sock
et,对应于无连接的UDP服务应用。 从用户的角度来看,
SOCK
_STREAM、
SOCK
_DGRAM这两类套接字似乎的确涵盖了TCP/IP应用的
Linux/Unix社区
23,118
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章