Chinaunix首页 | 论坛 | 博客
  • 博客访问: 558962
  • 博文数量: 142
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1452
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 16:28
文章分类

全部博文(142)

文章存档

2016年(10)

2015年(60)

2014年(72)

我的朋友

分类: C/C++

2014-11-03 14:37:19


在回显程序中,如果服务器进程没有运行,当我们在客户端键入一行文本时,那么什么也不会发生。客户永远阻塞于它的recvfrom调用,等待一个永远不会出现的服务器应答。抓包查看此时服务器和客户端的交互,可以发现在arp交互以后,服务器向客户端发送了一个ICMP端口不可到达的报文,不过这个报文不返回给客户进程。

ICMP端口不可到达是一个异步错误,它由sendto引起,但是sendto本身却返回成功,因为,sendto只是判断在接口输出队列中具有存放所形成IP数据报的空间,ICMP端口不可到达后来才返回。
对于UDP而言,由它引发的异步错误并不返回给它,除非它为已连接的(connected)。
阅读(1268) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~