社区
C++ 语言
帖子详情
为什么创建socket的时候,不能使用SOCK_RAW,但是可以使用SOCK_STREAM?
weixin_43454098
2020-06-23 02:45:25
为什么创建socket的时候,不能使用SOCK_RAW,但是可以使用SOCK_STREAM?
...全文
260
1
打赏
收藏
为什么创建socket的时候,不能使用SOCK_RAW,但是可以使用SOCK_STREAM?
为什么创建socket的时候,不能使用SOCK_RAW,但是可以使用SOCK_STREAM?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tomorrow778
2020-06-25
打赏
举报
回复
SOCK_STREAM 是基于TCP的,有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料传送。 SOCK_DGRAM 是基于UDP的,无保障的面向消息的socket,多用于在网络上发广播信息。 SOCK_RAW 原始socket,需要自己指定IP数据报 还是协议的问题,
SOCK
_
STREAM
(TCP)、
SOCK
_DGRAM (UDP)、
SOCK
_
RAW
PF_PACKET
SOCK
_
STREAM
(TCP)、
SOCK
_DGRAM (UDP) 工作在传输层,
SOCK
_
RAW
工作在网络层 网络层:
SOCK
_
RAW
可以处理ICMP、IGMP等网络报文、特殊的IPv4报文、可以通过IP_HDRINCL套接字选项由用户构造IP头 传输层TCP套接字的名字:
SOCK
_
STREAM
; 特点:可靠,开销大 传输层UDP套接字的名字:
SOCK
_DGRAM; 特点:不可靠(局网内还是比较可靠的),开销小。 项目中经常
使用
SOCK
_RAM类型进行数据包通信。使
SOCK
_
RAW
与
SOCK
_
STREAM
、
SOCK
_DGRAM 的区别
其中
SOCK
_
STREAM
(TCP)、
SOCK
_DGRAM (UDP) 工作在传输层,
SOCK
_
RAW
工作在网络层。
SOCK
_
RAW
可以处理ICMP、IGMP等网络报文、特殊的IPv4报文、可以通过IP_HDRINCL套接字选项由用户构造IP头。
嵌入式Linux网络编程,网络基础,套接字
sock
et
(
SOCK
_
STREAM
、
SOCK
_DGRAM、
SOCK
_
RAW
),IP地址,端口号,字节序,字节序转换函数,IP地址的转换
文章目录1,
sock
et
1.1,
sock
et
的类型(
SOCK
_
STREAM
、
SOCK
_DGRAM、
SOCK
_
RAW
)1.2,
sock
et
的位置2,IP地址2.1,特殊IP地址:3,端口号4,字节序(大端序、小端序)4.1,字节序(网络字节序(NBO和主机字节序HBO)4.2,字节序转换函数htonl()/htons()、ntohl()/ntohs()5,IP地址的转换 inet_aton()、in...
sock
_
raw
和
sock
_packet
套接字
SOCK
_
RAW
SOCK
_PACKET 实际上,我们常用的网络编程都是在应用层的报文的收发操作,也就是大多数程序员接触到的流式套接字(
SOCK
_
STREAM
)和数据包式套接字(
SOCK
_DGRAM)。而这些数据包都是由系统提供的协议栈实现,用户只需要填充应用层报文即可,由系统完成底层报文头的填充并发送。然而在某些情况下需要执行更底层的操作,比如修改报文头、避开系统协议栈等。这个时候就需要
使用
其他的方式来实现。 一原始套接字 原始套接字(
SOCK
_
RAW
)是一种不同于
SOCK
_STREA...
SOCK
_
STREAM
,
SOCK
_DGRAM,
SOCK
_SEQPACKET,
SOCK
_
RAW
.
bluetooth
sock
et
tcp/ip l2cap
C++ 语言
64,683
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章