- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第13章網络编程
第十三章 Java网络编程
一、Java套接字实现网络编程之基础篇 1
用 Java 开发网络软件非常方便和强大,Java 的这种力量来源于他独有的一套强大的用于 网络的 API,这些 API 是一系列的类和接口,均位于包 和 中。在这篇文 章中我们将介绍套接字(Socket)慨念,同时以实例说明如何使 用 Network API 操纵套接字, 在完成本文后,你将具备编写网络低端通讯软件的能力。
1、什么是套接字(Socket)?
Network API 是典型的用于基于 TCP/IP 网络 Java 程序与其他程序通讯,Network API 依靠 Socket 进行通讯。Socket 可以看成在两个程序进行通讯连接中的一个端点,一个程序将 一段信息写入 Socket 中,该 Socket 将这段信息发送给另外一个 Socket 中,使这段信息能传 送到其他程序中。如图 1
我们来分析一下图 1,Host A 上的程序 A 将一段信息写入 Socket 中,Socket 的内容被 Host A 的网络管理软件访问,并将这段信息通 过 Host A 的网络接口卡发送到 Host B,Host B 的网络接口卡接收到这段信息后,传送给 Host B 的网络管理软件,网络管理软件将这段信息 保 存在 Host B 的 Socket 中,然后程序 B 才能在 Socket 中阅读这段信息。
假设在图 1 的网络中添加第三个主机 Host C,那么 Host A 怎么知道信息被正确传送到
Host B 而不是被传送到 Host C 中了呢?基于 TCP/IP 网络中的每一个主机均被赋予了一个唯 一的 IP 地址,IP 地址是一个 32 位的无符号整数,由于没有转变成二进制,因此通常以小数点
分隔,如:,正如所见 IP 地址均由四个部分组成,每个部分的范围都是 0-255, 以表示 8 位地址。
值得注意的是 IP 地址都是 32 位地址,这是 IP 协议版本 4(简称 Ipv4)规定的,目前由
于 IPv4 地址已近耗尽,所以 IPv6 地址正逐渐代替 Ipv4 地址,Ipv6 地址则是 128 位无符号 整数。
假设第二个程序被加入图 1 的网络的 Host B 中,那么由 Host A 传来的信息如何能被正确 的传给程序 B 而不是传给新加入的程序呢?这是因为每一个基于 TCP/IP 网络通讯的程序都被 赋予了唯一的端口和端口号,端口是一个信息缓冲区,用于保留 Socket 中的输入/输出信息, 端口号是一个 16 位无符号整数,范围是 0-65535,以区别主机上的每一个程序(端口号就像 房屋中的房间号),低于 256 的短口号保留给标准应用程序,比如 pop3 的端口号就是 110, 每一个套接字都组合进了 IP 地址、端口、端口号,这样形成的整体就可以区别每一个套接字 t, 下面我们就来谈谈两种套接字:流套接字和自寻址数据套接字。
2、流套接字(Stream Socket) 无论何时,在两个网络应用程序之间发送和接收信息时都需要建立一个可靠的连接,流套
接字依靠 TCP 协议来保证信息正确到达目的地,实际上,IP 包有可能在网络中丢失或者在传送
过程中发生错误,任何一种情况发生,作为接受方的 TCP 将联系发送方 TCP 重新发送这个 IP
包。这就是所谓的在两个流套接字之间建立可靠的连接。
流套接字在 C/S 程序中扮演一个必需的角色,客户机程序(需要访问某些服务的网络应用 程序)创建一个扮演服务器程序的主机的 IP 地址和服务器程序(为客户端应用程序提供服务的 网络应用程序)的端口号的流套接字对象。
客户端流套接字的初始化代码将 IP 地址和端口号传递给客户端主机的网络管理软件,管理 软件将 IP 地址和端口号通过 NIC 传递给服务器端主机;服务器端主机读到经过 NIC 传递来的 数据,然后查看服务器程序是否处于监听状态,这种监听依然是通过套接字和端口来进行的;如 果服务器程序处于监听状态,那么服务器端网络管理软件就向客户机网络管理软件发出一个积极 的响应信号,接收到响应信号后,客户端流套接字初始化代码就给客户程序建立一个端口号,并 将这个端口号传递给服务器程序的套接字(服务器程序将使用这个端口号识别传来的信息是否是 属于客户程序)同时完成流套接字的初始化。
如果服务器程序没有处于监听状态,那么服务器端网络管理软件将给客户端传递一个消极 信号,收到这个消极信号后,客户程序的流套接字初始化代码将抛出一个异常对象并且不建立通 讯连接,也不创建流套接字对象。这种情形就像打电话一样,当有人的时候通讯建立,否则电话 将被挂起。
这部分的工作包括了相关联的三个
您可能关注的文档
最近下载
- 制药工程制图习题集(第二版)于颖_课后习题答案解析.pdf
- 《建设工程施工管理》PPT课件.pptx VIP
- 义务教育版(2024)五年级全一册信息科技 第6课 判断选择用分支 教案.docx VIP
- 个人简历表格下载word(最新).pdf VIP
- Flexsim中文使用手册.pdf VIP
- 学习解读《水利水电建设工程验收规程》SLT223-2025课件.pptx
- 第八节可燃粉尘的爆炸.ppt VIP
- 视琦多媒体视觉训练系统使用说明书.doc VIP
- GB T 28749-2012_企业能量平衡网络图绘制方法_高清版_可检索.pdf
- 重庆秀山县公安局招聘警务辅助人员笔试真题2023(含答案).pdf VIP
文档评论(0)