Chinaunix首页 | 论坛 | 博客
  • 博客访问: 82883
  • 博文数量: 34
  • 博客积分: 2438
  • 博客等级: 大尉
  • 技术积分: 350
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-29 09:53
文章分类
文章存档

2010年(34)

我的朋友
最近访客

分类:

2010-03-18 07:29:43

一直知道sendmsg()的存在,但是,这个接口看上去比较复杂,而且,对于ipv4的tcp、udp而言,send()和sendto()已经完全够用,所以从来没有去细看。
去年年底的时候,看了情景分析中的UNIX套接字的实现,发现他们直接的关系是这样的:
1. send()是由sendto()实现的,但不需要没有指定目的地址;
2. sendto()是有sendmsg()实现的,但只指定一个缓冲区,且不发送带外数据;
3. sendmsg()提供了多缓冲区发送和带外数据发送的功能;
当时看了,但没有做实验,现在论坛上有人提出这个问题,他需要将sendmsg()替换为send()接口,所以,只需要把多个缓冲区拼接成一个就可以了,出于对他人负责的态度,我做了一下实验,恩,发送的时候,socket会按照io_vec索引的顺序发送数据的,这个,与预期一致。
有些看起来有点麻烦的技术,静下心,认真看一看,还是比较好搞懂的,要是一时真搞不懂,就记在心里啦,等知识储备足够的时候再回头搞懂也行。
阅读(1647) | 评论(0) | 转发(0) |
0

上一篇:下手了

下一篇:一锅粥

给主人留下些什么吧!~~