开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《UNIX网络编程 卷1:套接字联网API(第3版)》——8.16 小结

简介: UDP套接字可能产生异步错误,它们是在分组发送完一段时间后才报告的错误。TCP套接字总是给应用进程报告这些错误,但是UDP套接字必须已连接才能接收这些错误。
+关注继续查看

本节书摘来自异步社区《UNIX网络编程 卷1:套接字联网API(第3版)》一书中的第8章,第8.16节,作者:【美】W. Richard Stevens , Bill Fenner , Andrew M. Rudoff著,更多章节内容可以访问云栖社区“异步社区”公众号查看

8.16 小结

把我们的TCP回射客户/服务器程序转换成UDP回射客户/服务器程序比较容易,然而TCP提供的许多功能也消失了:检测丢失的分组并重传,验证响应是否来自正确的对端,等等。到22.5节我们再回过头来讨论这个话题,并查看如何给UDP应用程序增加一些可靠性。

UDP套接字可能产生异步错误,它们是在分组发送完一段时间后才报告的错误。TCP套接字总是给应用进程报告这些错误,但是UDP套接字必须已连接才能接收这些错误。

UDP没有流量控制,这一点很容易演示证明。一般来说,这不成什么问题,因为许多UDP应用程序是用请求-应答模式构造的,而且不用于传送大量数据。

编写UDP应用程序时还有许多问题需要考虑,不过我们把它们留到第22章,也就是在讲解了接口函数、广播和多播以后再作讨论。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介(二)
【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介(二)
0 0
【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介(一)
【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介(一)
0 0
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.10 UDP程序例子小结
一般来说,客户的IP地址和端口号都由内核自动选择,尽管我们提到过,客户也可以调用bind指定它们。在客户的这两个值由内核选择的情形下我们也提到过,客户的临时端口是在第一次调用sendto时一次性选定,不能改变;然而客户的IP地址却可以随客户发送的每个UDP数据报而变动(假设客户没有捆绑一个具体的IP地址到其套接字上)。
897 0
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.9 服务器进程未运行
我们下一个要检查的情形是在不启动服务器的前提下启动客户。如果我们这么做后在客户上键入一行文本,那么什么也不发生。客户永远阻塞于它的recvfrom调用,等待一个永不出现的服务器应答。然而这是一个很好的例子,它要求我们更多地了解底层协议以理解网络应用进程将发生什么。
1346 0
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.8 验证接收到的响应
我们的解决办法是修改图8-8中的recvfrom调用以返回数据报发送者的IP地址和端口号,保留来自数据报所发往服务器的应答,而忽略任何其他数据报。然而这样做照样存在一些缺陷,我们马上就会看到。
1175 0
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.7 数据报的丢失
我们的UDP客户/服务器例子是不可靠的。如果一个客户数据报丢失(譬如说,被客户主机与服务器主机之间的某个路由器丢弃),客户将永远阻塞于dg_cli函数中的recvfrom调用,等待一个永远不会到达的服务器应答。
1131 0
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数
我们的客户尚未请求内核给它的套接字指派一个临时端口。(对于TCP客户而言,我们说过connect调用正是这种指派发生之处。)对于一个UDP套接字,如果其进程首次调用sendto时它没有绑定一个本地端口,那么内核就在此时为它选择一个临时端口。跟TCP一样,客户可以显式地调用bind,不过很少这样做。
1262 0
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.5 UDP回射客户程序:main函数
本节书摘来自异步社区《UNIX网络编程 卷1:套接字联网API(第3版)》一书中的第8章,第8.5节,作者:【美】W. Richard Stevens , Bill Fenner , Andrew M. Rudoff著,更多章节内容可以访问云栖社区“异步社区”公众号查看
768 0
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.4 UDP回射服务器程序:dg_echo函数
dg_echo协议无关的理由如下:调用者(在我们的例子中为main函数)必须分配一个正确大小的套接字地址结构,且指向该结构的指针和该结构的大小都必须作为参数传递给dg_echo。dg_echo绝不查看这个协议相关结构的内容,而是简单地把一个指向该结构的指针传递给recvfrom和sendto。
757 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
CUDA Math API
立即下载
阿里云 API 精选手册(Alibaba Cloud API Playbook)
立即下载
重保场景及API安全指南
立即下载