QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1404|回复: 4

请教socket参数的问题

[复制链接]
发表于 2006-5-29 07:28:58 | 显示全部楼层 |阅读模式
我对socket的类型参数没弄明白,请大家指点一下:
SOCK_STREAM,SOCK_DGRAM分别使用tcp,udp协议,意思是不是先判断你的程序用那种协议再分别选以上参数?
还有SOCK_RAW,我查资料说能显示完整ip头,而有的说它能越过传输层,不知道什么意思?有没有较清楚的解释.
发表于 2006-5-30 13:13:35 | 显示全部楼层

Re: 请教socket参数的问题

[quote:2e6cea3a79="sunsetglorie"]我对socket的类型参数没弄明白,请大家指点一下:
SOCK_STREAM,SOCK_DGRAM分别使用tcp,udp协议,意思是不是先判断你的程序用那种协议再分别选以上参数?[/quote]
yes
使用tcp还是udp由你自己决定。
[quote:2e6cea3a79="sunsetglorie"]
还有SOCK_RAW,我查资料说能显示完整ip头,而有的说它能越过传输层,不知道什么意思?有没有较清楚的解释.[/quote]
raw是英文原始的意思。

也就是系统不对ip包进行任何处理,传给应用程序由它自己决定。
回复

使用道具 举报

发表于 2006-5-30 16:11:14 | 显示全部楼层

about RAW

关于是使用TCP还是UDP你自己写程序时应该 决定好了。
RAW这个参数,我没用过,但书上说的是只有“专家”才用的,呵呵,具体有多强,得自己去发现了!呵呵 :D
回复

使用道具 举报

 楼主| 发表于 2006-5-31 12:13:49 | 显示全部楼层
就是系统不对ip包进行任何处理,传给应用程序由它自己决定。

意思是链路层不处理吧,那越过传输层什么意思呀?

呵呵,谢谢
回复

使用道具 举报

发表于 2006-6-3 12:22:21 | 显示全部楼层
传输层是TCP,UDP模块

使用RAW_IP穿过传输层时,它的意思是
你发送包时,需自己做TCP报头和UDP报头,但是IP报头不需要你做
当你收到包时, 要根据IP报头里的域 ip_p 来自己判断该使用IP协议的IP报头的后面跟的是什么协议(如TCP)的头(TCP报头).

当使用PACKET方式时,连链路层的IP报头也得自己生成(发送包时)和解析(收到包时)了.这时就说它穿过了链路层.

以此类推,就是ETHERNET头等,最后是自己去读网卡的端口.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 14:31 , Processed in 0.044935 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表