fbpx

[email protected]

购物车

 查看订单

  • 我的帐户
东东购 | EasternEast
  • 中文书店
    • 畅销排行榜
      • 小说 畅销榜
      • 童书 畅销榜
      • 外语畅销榜
      • 管理畅销榜
      • 法律畅销榜
      • 青春文学畅销榜
    • 热门分类
      • 社会小说
      • 成功/励志 畅销榜
      • 人物传记
      • 大陆原创
      • 绘本童书
      • 影视小说
    • 文学推荐
      • 文集
      • 戏剧
      • 纪实文学
      • 名家作品
      • 民间文学
      • 中国现当代随笔
    • 新书热卖榜
      • 小说 新书热卖榜
      • 青春文学 新书热卖榜
      • 童书 新书热卖榜
      • 管理 新书热卖榜
      • 成功/励志 新书热卖榜
      • 艺术 新书热卖榜
  • 精选分类
    • 小说
    • 保健养生
    • 烹饪/美食
    • 风水/占卜
    • 青春文学
    • 童书
    • 管理
    • 成功/励志
    • 文学
    • 哲学/宗教
    • 传记
    • 投资理财
    • 亲子家教
    • 动漫/幽默
    • 法律 Legal
    • 经济 Economics
    • 所有分类
  • 关于东东
  • 帮我找书
搜索
首页计算机/网络网络与数据通信TCP/IP网络编程原理与技术

TCP/IP网络编程原理与技术

网络编程改变应用,应用改变世界;用操作系统的并发进程原理解释服务器并发编程的方法和原理,让作者更能读懂,看懂,学会编写并发程序。

作者:钟辉、臧晗、董洁、宋凯、孟祥宇 、高野 出版社:清华大学出版社 出版时间:2019年06月 

ISBN: 9787302526025
年中特卖用“SALE15”折扣卷全场书籍85折!可与三本88折,六本78折的优惠叠加计算!全球包邮!
trust badge

EUR €28.99

类别: 研究生/本科/专科教材, 网络与数据通信 SKU:5d816ff3b5d8bfc22f310d4f 库存: 有现货
  • 描述
  • 评论( 0 )

描述

开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302526025丛书名: 计算机系列教材

编辑推荐
1. 从应用互联网的角度讲解网络编程的基本概念和原理,用实例引出概念,用应用引出方法,用案例引出原理。
2. 在*基本的、*原始的操作系统上讲解计算机之间的通信过程,使用*原始的进程概念解释网络编程的细节和步骤。
3. 用*易懂的语言输入输出功能讲解复杂的网络通信编程原理,用*基本的客户机服务器概念来概括说明网络编程的方法和步骤。

 

内容简介
Internet是世界上*的计算机互连网络,TCP/IP是Internet上使用*为成熟的协议。本书重点介绍用TCP/IP进行编程的主要原理和编程环境,并举出实例来解释这些编程原理和概念。
网络中*基本的通信基础是客户服务器模式,它在计算机通信中占主导地位。本书内容主要包括客户服务器各部件的功能,还说明了如何构建客户和服务器软件。介绍了客户服务器模式的基本概念,TCP/IP协议提供传输数据的基本机制;如何在TCP/IP环境下组织编写应用程序;计算机网络通信程序的构建方法;从而进一步了解在网络环境下构建分布式程序。
全书共分13章: 第1章着重介绍网络编程的目标和准备工作;第2章和第3章着重介绍客户服务器的概念以及并发处理存在的主要问题和应用;第4章和第5章基于Linux操作系统介绍套接字接口的概念和封装的系统调用函数;第6章介绍客户程序设计方法和需要注意的细节问题;第7章介绍了各种典型服务器的设计方法,需要注意的问题和细节;第8章和第9章介绍单线程编写并发程序的方法和应用条件;第10~12章介绍多服务、多协议服务器设计方法和并发管理过程;第13章介绍客户并发设计的方法和使用条件。全书提供了大量应用实例,每章后均附有习题。
本书适合作为高等院校计算机、软件工程、信息管理等专业高年级本科生、研究生的教材,也可供对TCP/IP比较熟悉并且对网络编程有所了解的开发人员、广大科技工作者和研究人员参考。
目  录
目录
第1章网络编程准备1
1.1TCP/IP技术的因特网应用1
1.2用TCP/IP构建分布式环境设计应用程序2
1.3用TCP/IP构建的标准和非标准应用协议2
1.4使用TCP/IP标准应用协议的例子2
1.5Telnet连接的例子3
1.6使用Telnet访问其他服务4
1.7TCP/IP应用协议和软件灵活性5
1.8从提供者的角度看服务5
1.9本教材内容介绍6
1.10小结6
习题6第2章客户服务器模式软件设计概念8
2.1客户服务器的起源8
2.2客户服务器关键问题9
2.3客户服务器术语9
2.3.1客户和服务器10
2.3.2服务器特权和复杂性10
2.3.3标准和非标准客户软件10
2.3.4客户的参数化11
2.3.5无连接的和面向连接的服务器11
2.3.6无状态和有状态服务器12
2.3.7无状态文件服务器的例子13
2.3.8有状态文件服务器的例子13
2.3.9客户标识14
2.3.10无状态是一个协议问题15
2.3.11充当客户的服务器16
2.4小结16
习题17第3章客户服务器模式软件中的并发处理18
3.1引言18
3.2网络中的并发18
3.3服务器中的并发19
3.4并发术语20
3.4.1进程概念20
3.4.2局部和全局变量的共享21
3.4.3过程调用22
3.5一个创建并发进程的例子22
3.5.1一个顺序执行的C实例22
3.5.2程序的并发版本23
3.5.3时间分片24
3.5.4单线程的进程25
3.5.5使各进程分离25
3.6执行新的代码26
3.7上下文切换和协议软件设计27
3.8并发和异步I/O27
3.9小结28
习题28第4章网络编程协议的程序接口29
4.1引言29
4.2不精确指明的协议软件编程接口29
4.3接口功能30
4.4概念性接口的规范30
4.5操作系统调用31
4.6网络通信的两种基本方法31
4.7Linux中提供的基本I/O功能32
4.8将Linux I/O用于TCP/IP33
4.9小结33
习题33第5章接口实现——套接字API35
5.1引言35
5.2Berkeley套接字35
5.3指明一个协议接口35
5.4套接字的抽象36
5.4.1套接字描述符和文件描述符36
5.4.2针对套接字的系统数据结构37
5.4.3主动套接字或被动套接字37
5.5指明端点地址38
5.6类属地址结构39
5.7套接字API中的主要系统调用40
5.7.1socket调用40
5.7.2connect调用40
5.7.3send调用41
5.7.4recv调用41
5.7.5close调用41
5.7.6bind调用41
5.7.7listen调用42
5.7.8accept调用42
5.7.9在套接字中使用read和write42
5.7.10套接字调用小结42
5.8用于整数转换的实用例程43
5.9在程序中使用套接字调用44
5.10套接字调用的参数所使用的符号常量44
5.11小结45
习题46第6章客户软件算法及编程实例47
6.1引言47
6.2不是研究细节而是学习算法47
6.3客户体系结构和要解决的问题48
6.3.1标识服务器的位置48
6.3.2分析地址参数49
6.3.3查找域名50
6.3.4由名字查找某个熟知端口51
6.3.5端口号和网络字节顺序51
6.3.6由名字查找协议51
6.4TCP客户算法52
6.4.1分配套接字52
6.4.2选择本地协议端口号53
6.4.3选择本地IP地址中的一个基本问题53
6.4.4将TCP套接字连接到某个服务器54
6.4.5使用TCP与服务器通信54
6.4.6从TCP连接中读取响应55
6.4.7关闭TCP连接55
6.5UDP客户算法56
6.5.1连接的和非连接的UDP套接字57
6.5.2对UDP使用connect57
6.5.3使用UDP与服务器通信57
6.5.4关闭使用UDP的套接字57
6.5.5对UDP的部分关闭58
6.5.6关于UDP不可靠性的警告58
6.6客户编程实例的重要性58
6.7隐藏细节59
6.8针对客户程序的过程库59
6.8.1connectTCP的实现60
6.8.2connectUDP的实现60
6.8.3构成连接的过程61
6.9过程库使用63
6.10DAYTIME服务63
6.10.1针对DAYTIME的TCP客户实现64
6.10.2从TCP连接中进行读65
6.11TIME服务66
6.12访问TIME服务66
6.13精确时间和网络时延67
6.14针对TIME服务的UDP客户67
6.15ECHO服务69
6.16针对ECHO服务的TCP客户69
6.17针对ECHO服务的UDP客户71
6.18小结72
习题74第7章服务器软件算法及编程实例76
7.1引言76
7.2概念性的服务器算法76
7.3并发服务器和循环服务器76
7.4面向连接的和无连接的访问77
7.5服务器需要考虑的几个问题77
7.5.1传输层协议的语义77
7.5.2选择传输协议78
7.5.3面向连接的服务器78
7.5.4无连接的服务器79
7.5.5服务器的故障、可靠性和无状态80
7.5.6优化无状态服务器80
7.5.7请求处理时间82
7.6服务器的四种基本类型82
7.7循环服务器的算法83
7.8循环的、面向连接的服务器的算法83
7.8.1用INADDR_ANY绑定熟知端口83
7.8.2将套接字置于被动模式84
7.8.3接受连接并使用这些连接84
7.9循环的、无连接的服务器的算法84
7.10并发服务器的算法85
7.11并发的、无连接的服务器的算法86
7.12并发的、面向连接的服务器的算法86
7.12.1服务器并发性的实现87
7.12.2把单独的程序作为从进程来使用87
7.13使用单线程获得表面上的并发性88
7.14各服务器类型所适用的场合89
7.15服务器类型小结89
7.16重要问题——服务器死锁90
7.17其他的实现方法90
7.18循环的、无连接的服务器设计91
7.18.1创建被动套接字91
7.18.2进程结构94
7.18.3TIME服务器举例94
7.18.4小结96
7.19循环的、面向连接的服务器设计96
7.19.1分配被动的TCP套接字96
7.19.2用于DAYTIME服务的服务器97
7.19.3进程结构97
7.19.4DAYTIME服务器举例98
7.19.5关闭连接100
7.19.6连接终止和服务器的脆弱性100
7.19.7小结101
7.20并发的、面向连接的服务器设计101
7.20.1并发ECHO102
7.20.2循环与并发实现的比较102
7.20.3进程结构102
7.20.4并发ECHO服务器举例103
7.20.5清除游离(errant)进程106
7.20.6小结106
7.21小结107
习题107第8章使用线程模型实现并发110
8.1引言110
8.2Linux线程概述110
8.3线程和进程的关系111
8.3.1描述符、延迟和退出111
8.3.2线程退出112
8.4线程协调和同步112
8.4.1互斥112
8.4.2信号量113
8.4.3条件变量113
8.5使用线程的服务器实例114
8.6监控117
8.7小结118
习题118第9章单线程并发服务器设计119
9.1引言119
9.2服务器中的数据驱动处理119
9.3用单线程进行数据驱动处理120
9.4单线程服务器的线程结构120
9.5单线程ECHO服务器举例121
9.6小结123
习题124第10章多协议服务器设计125
10.1引言125
10.2减少服务器数量的动机125
10.3多协议服务器的设计125
10.4进程结构126
10.5多协议DAYTIME服务器的例子126
10.6共享代码的概念129
10.7并发多协议服务器130
10.8小结130
习题130第11章多服务服务器设计132
11.1引言132
11.2合并服务器132
11.3循环的、无连接的、多服务服务器设计132
11.4循环的、面向连接的、多服务服务器设计133
11.5并发的、面向连接的、多服务服务器设计134
11.6并发的、单线程的、多服务服务器的实现135
11.7从多服务服务器调用单独的程序135
11.8多服务、多协议服务器设计136
11.9多服务服务器的例子137
11.10静态的和动态的服务器配置143
11.11UNIX超级服务器——inetd144
11.12inetd服务器的例子146
11.13小结147
习题148第12章服务器并发性管理149
12.1引言149
12.2在循环设计和并发设计间选择149
12.3并发等级150
12.4需求驱动的并发150
12.5并发的代价150
12.6额外开销和时延151
12.7小时延问题151
12.8从线程/进程的预分配152
12.8.1Linux中的预分配153
12.8.2面向连接的服务器中的预分配153
12.8.3互斥、文件锁定和accept并发调用154
12.8.4无连接的服务器中的预分配155
12.8.5预分配、突发通信量和NFS155
12.8.6多处理器上的预分配156
12.9延迟的从线程/进程分配156
12.10两种技术统一的基础157
12.11技术的结合157
12.12小结158
习题158第13章客户软件并发设计160
13.1引言160
13.2并发的优点160
13.3运用控制的动机160
13.4与多个服务器的并发联系161
13.5实现并发客户162
13.6单线程实现162
13.7使用ECHO的并发客户的例子163
13.8并发客户的执行167
13.9例子代码中的并发性169
13.10小结169
习题169附录A系统调用与套接字使用的库例程170参考文献192
前  言
前言
随着Internet的发展,网络技术已经渗透到人们的生活和工作中。TCP/IP已经成为最流行的网络协议,且还在演变以满足未来的需要。在速度越来越快的计算机硬件和不断更新的软件发展的背后,TCP/IP在任何类型的硬件上都很容易实现和编写应用程序。网络作为中枢神经把世界连在一起。也正是因为网络的出现与发展,编写网络应用程序的程序员和工程师也在不断增加。TCP/IP网络编程看起来非常简单,应用程序接口(application program interface,API)十分易懂。即使初学者也可以使用现代高级语言抽象的客户服务器程序模板来编写应用程序。但是发现初学者在经历了最初的高效编程之后,在软件设计细节面前开始停滞不前,同时发现他们编写的程序正在遭受性能和健壮性的考验,在灵活使用客户服务器模式解决应用问题过程中,缺乏对程序运行可靠性、并发控制、容错等方面的解决方法,造成程序运行不稳定甚至错误。网络编程完全不同于常规的单机编程,每个程序运行都要受网络上其他在线程序的控制和干扰。网络编程是一个充满黑暗角落的领域,一些细节有可能会被错误理解。如果停留在高层语言抽象环境里编程,永远不能掌握客户服务器的实质与精髓。本书对TCP/IP网络编程最精细的基本理论和概念进行了分析和介绍,能照亮读者编程中黑暗的角落并帮助其改正错误。
通过本书的介绍,读者会透彻理解网络编程的许多难点。本书详细介绍了客户服务器编程的所有细节。通过对这些细节的理解,读者将获得相应的知识,即网络协议的内部工作机制如何与应用程序交互。因而对那些以前看起来令人困惑的程序行为就会变得很容易理解,解决问题的办法就会变得很清晰。本书面向套接字的网络编程学习者,只要掌握最基础的C语言编程实例和概念,就能掌握最基本的客户服务器编程细节,更能方便在学习了C 之后,掌握面向对象高级封装环境的网络编程过程。掌握相关的网络协议知识以及操作系统的基础知识将有助于客户服务器编程。本书针对网络编程的初学者,首先强调基本概念和原理的掌握,加强所有章节示例的可读性,然后才考虑代码的优化问题。本书适合所有希望学习Linux的网络编程的读者。Linux操作系统是早期的网络编程环境,对于该环境的掌握就不难了解Windows环境的网络编程,因为Windows操作系统的网络编程环境也是来自于UNIX操作系统的移植,所以使用任何操作系统都不会有问题。网络编程的特点决定了同时学习两种操作系统平台的网络编程是最有效的学习方法。不必为学习本书的内容而特意掌握Linux和Windows两种操作系统的操作方法,只需要了解各自的编译方法即可。本书主要介绍了Linux平台下的套接字函数和调用方法,所有示例程序都是在Linux平台下实现的。
    作为一名长期从事计算机网络相关课程教学的教师,作者一直在考虑这样一个问题: 怎样用有限的课堂教学时间为学生系统地讲授网络编程的基本概念、基本原理和应用?教材是教学过程中使用的主要资料,是教与学的主要内容依据,所以一本好的教材应科学、合理地覆盖本门课程的知识,具有严谨的总体结构和章节安排,内容应详略得当且能够突出重点。同时,编写教材的人员也应该注意本门课程与操作系统、C语言课程之间的联系,解决好课程之间的衔接。作者认为编写网络编程教材应有如下的要求: 第一,应具备丰富的实践经验,对自己的专业有深刻的理解;第二,应具备丰富的教学经验,能够把握学生的学习规律,并力求将深奥的理论叙述和讲解简单化;第三,应具备对知识的归纳和总结能力,并具有良好的写作功底,能够将知识阐述得准确、清晰。一本好的教材必须经过精心规划和设计。本书在出版前其内容已经在多年的教学过程中讲授过,作者对内容进行了多次调整和增减,增加了大量易于操作和实验内容。
本书的内容特色是在介绍每一类服务器算法时都增加了配套的示例和讲解过程,并配有源代码和运行结果。让读者可以通过代码运行理解客户服务器算法的实现过程,了解客户服务器的结构。尤其是通信代码的交互过程,它是网络编程的难点所在,特意强调在各种应用过程中使用套接字通信交互的理解和使用。其次强调了并发服务器的编写,它也是服务器编写的难点之一。
本书共分为13章: 第1~5章主要介绍网络编程的主要概念——客户服务器、并发程序、套接字接口及其API;第6章介绍客户编程的基本概念和存在的主要问题,举出实例讲解客户编程的一般方法,隐藏细节的过程库,重点介绍了TCP和UDP的客户编程;第7章介绍服务器编程的基本概念和需要解决的问题,举例说明四大类服务器编写的代码示例,重点说明并发服务器的设计方法;第8章和第9章介绍单线程实现并发程序的设计及其应用场景;第10~12章介绍多服务、多协议服务器设计方法和原理,以及并发性管理;第13章介绍客户并发设计的原理和应用场景。
在本书的编写过程中,得到教学团队同事的大力支持和帮助,借此机会向他们表示衷心的感谢!本书由钟辉统筹全书章节内容和框架,并校对所有章节内容。第1~5章由董洁、臧晗编写,并进行了代码实验操作验证,总结实验步骤和遇到的问题;第6章和第7章由钟辉编写,孟祥宇、高野编写实例代码进行实验验证,总结实验代码所遇到的问题;第8章和第9章由宋凯、孟祥宇编写,高野进行了代码实验验证;第10~12章由钟辉、董洁编写,臧晗编写实例代码进行实验验证,并总结出现的问题。
计算机软硬件与互联技术发展迅速,限于作者的学识和时间,本书难免有错误与不妥之处,恳请读者批评指正,作者将万分感谢。

 编者2018年8月于沈阳

免费在线读
第5章接口实现——套接字API〖1〗5.1引言第4章描述了应用程序和TCP/IP软件之间的接口,还说明了在大多数系统中如何使用系统调用机制,将控制权传送给操作系统中的TCP/IP软件。还回顾了UNIX所提供的6个基本I/O函数:open、close、read、write、lseek和ioctl。本章将详细描述套接字API,并说明这些函数是如何与UNIX I/O函数集成到一起的。还涉及一些通用概念,并给出每个调用的使用方法。后面几章将说明客户和服务器是怎样使用这些调用的,并提供了一些说明许多细节的例子。
5.2Berkeley套接字
在20世纪80年代早期,远景研究规划局(Advanced Research Projects Agency,ARPA)资助了加利福尼亚大学伯克利分校的一个研究组,让它们将TCP/IP软件移植到UNIX操作系统中,并将结果提供给其他网点。作为项目的一部分,设计者们创建了一个接口,应用进程使用这个接口可以进行通信。他们决定,只要有可能就使用已有的系统调用,对那些不能方便地使用已有函数集的情况,再增加新的系统调用以支持TCP/IP功能。这样就出现了套接字API (socket API)或套接字接口,这个系统被称为Berkeley UNIX或BSD UNIX。TCP/IP首次出现于BSD 4.1版本(release 4.1 of Berkeley Software Distribution);本书所描述的套接字函数来自BSD 4.4版本。
由于许多计算机厂商,尤其是像Sun Microsystem、Tektronix及Digital这样的工作站制造商,采用了Berkeley UNIX,于是在许多计算机上都可以使用套接字接口。这样,套接字接口就已被广泛采用,以至于成为事实上的标准。微软公司也接受了这个标准,并为其操作系统开发了一个相应的实现版本。另外,Linux操作系统也使用了套接字。
5.3指明一个协议接口
在考虑如何在操作系统中增加功能,使应用程序能够访问TCP/IP软件时,设计者们必须为函数选择名字,并指明每个函数所带的参数。为此,他们要决定各函数所提供的服务范围,以及应用进程以何种方式来使用它们。设计者们还必须考虑,是让这个接口专门针对TCP/IP,还是使它能为其他协议所用。因此。设计者们必须在下列两种方法中选择一个:
 定义专门支持TCP/IP通信的一些函数;
 定义支持一般网络通信的函数,用参数使TCP/IP通信作为一种特例。这两种方法的不同之处是很容易理解的,它们会影响到系统函数的名字以及这些函数所要求的参数。例如,对第一种方法,设计者可能会把一个系统函数取名为maketcpconnection;而对第二种方法,设计者也许会创建一个一般性的函数makeconnection并使用一个参数来指明使用TCP。
由于Berkeley的设计者想使接口适合多种通信协议,所以使用了第二种方法。实际上,纵观整个设计,他们提供了超出TCP/IP之外的通用性。他们允许使用多种协议族(family),而把所有TCP/IP协议表示为单个族(PF_INET族)。他们还决定,让应用程序使用所要求的服务的类型(type of service)来指明操作,而不是指明协议名。因此,应用程序不是去指明它需要一个TCP连接,而是要求使用Internet,协议族的流传送(stream transfer)类型的服务,可作如下概括:套接字API提供了许多综合的功能,这些功能支持使用众多可能的协议进行网络通信。套接字调用把所有TCP/IP看作一个单一的协议族。这些调用允许程序员指明所要求的服务而不是指明某个特定协议的名字。套接字的整个设计以及它们所提供的通用性从一开始就受到议论。一些计算机科学家认为,通用性是没有必要的,这只能使应用程序难于阅读。而另一些人则认为,让程序员指明服务的类型而不是指明协议,可使编程容易,因为这样做使程序员免于了解各种协议族的细节。最后,一些TCP/IP的商业厂商则强调更喜欢其他接口,因为,除非有了源代码,套接字不能加到操作系统中,而源代码往往需要一个特定的许可证以及附加的费用。
5.4套接字的抽象〖*4/5〗5.4.1套接字描述符和文件描述符执行I/O的应用程序需要调用open函数,才能创建用于访问文件的文件描述符。如图51所示,操作系统将这些文件描述符实现为一个指针数组,这些指针指向内部的数据结构。系统为每个进程维护一个单独的文件描述符表。当一个进程打开某个文件后,系统就将一个指针(指向此文件的内部数据结构)写入进程的文件描述符表,并将这个表的下标返回给调用者,应用程序只须记住这个描述符,就可在以后要求对此文件进行操作的调用中使用该描述符。操作系统将此描述符作为该进程文件描述符表的下标来使用,并沿着指针可找到那个保存文件所有信息的数据结构。
图51每个进程(perprocess)的文件描述符表
套接字接口为网络通信增加了一个新的抽象,即套接字。就像文件一样,每个活动的套接字由一个小整数标识,称为套接字描述符。操作系统在与文件描述符相同的描述符表中分配套接字描述符。因此,一个应用进程不能拥有具有相同值的文件描述符和套接字描述符。
操作系统还有一个单独的系统函数socket,应用程序调用它来创建套接字。应用进程只使用open来创建文件描述符。套接字中所蕴涵的一般性的概念: 单个系统调用对创建任何套接字都是足够的。套接字一旦创建后,应用程序必须用其他的系统调用来指明准确使用此套接字的细节。在研究了系统所维护的数据结构后,这个范例将变得更清晰。
5.4.2针对套接字的系统数据结构
了解套接字抽象最简单的方法是想象一下操作系统中的数据结构。当应用进程调用socket后,操作系统就分配一个新的数据结构以便保存通信所需的信息,并在文件描述符表中填入了一个新的条目,该条目含有指向这个数据结构的指针。例如,图52说明了在调用socket后,图51中的描述符表会发生的变化,系统为socket和其他I/O使用同一个描述符表。在本例中,socket调用的参数指明协议族为PF_INET,服务类型为SOCK_STREAM。
图52在调用socket后,操作系统的概念性的数据结构
尽管针对套接字的内部数据结构含有许多字段,在系统创建了套接字后,大多数字段中的值并没有填上。正如将看到的,在套接字能够被使用前,创建该套接字的应用程序必须用其他系统调用把套接字数据结构中的这些信息填上。
5.4.3主动套接字或被动套接字
套接字一旦创建,应用程序必须指定如何使用它,套接字本身是完全通用的,可以用来进行任意方式的通信。例如,服务器可以将套接字配置为等待传入连接,而客户可以将其配置为发起连接。
如果服务器将套接字配置为等待传入连接,就称此套接字为被动(passive)套接字;反之,客户用来发起连接的套接字就称为主动(active)套接字。其要点如下:主动套接字和被动套接字的唯一不同在于应用使用它们的方式;两种套接字最初的创建方式是相同的。5.5指明端点地址
在创建套接字时,并没有包含如何使用这个套接字的信息。具体地说,套接字并没有包含本地/远程计算机的协议端口号或者IP地址等信息。在应用进程使用一个套接字之前,它必须指明这些地址中的一个或者两个都指明。
TCP/IP定义了通信端点,它包括IP地址和协议端口号。其他协议族按照各自的方式定义端点地址。由于套接字抽象适用于多种协议族,所以它既没有指明如何定义端点地址,也没有定义一种特定的协议地址格式,而是改为允许每个协议族随其所愿地指明端点。
为允许协议族自由地选择其地址表示方式,套接字抽象为每种类型的地址定义了一个地址族。一个协议族可以使用一种或者更多的地址族来定义地址表示方式。TCP/IP各协议都使用一种单一的地址表示方式,其地址族用符号常量AF_INET表示。

抢先评论了 “TCP/IP网络编程原理与技术” 取消回复

评论

还没有评论。

相关产品

加入购物车

手把手教你设计CPU——RISC-V处理器篇

EUR €58.99
加入购物车

Axure RP8 入门手册 网站和App原型设计从入门到精通

EUR €58.99
阅读更多
缺货

智慧城市:大数据、互联网时代的城市治理(第4版)

EUR €43.99
阅读更多
缺货

Python数据分析与数据化运营

EUR €58.99

东东购的宗旨是服务喜爱阅读中文书籍的海外人民,提供一个完善的购书平台,让国人不论何时何地都能沉浸在书香之中,读着熟悉的中文字,回忆着家乡的味道。


安全加密结账 安心网络购物 支持Paypal付款

常见问题

  • 货物配送
  • 退换货政策
  • 隐私政策
  • 联盟营销

客户服务

  • 联系东东
  • 关于东东
  • 帮我找书
  • 货物追踪
  • 会员登入

订阅最新的优惠讯息和书籍资讯

选择币别

EUR
USD
CAD
AUD
NZD
NOK
GBP
CHF
SEK
CNY
UAH
ILS
SAR
MXN
KRW
MYR
SGD
HUF
TRY
JPY
HKD
TWD
facebookinstagram
©2020 东东购 EasternEast.com

限时特卖:用“SALE15”优惠券全场书籍85折!可与三本88折,六本78折的优惠叠加计算。 忽略