- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《第 9 章 Java网络》.ppt
* 为了在并不可靠的网络上实现面向连接的可靠的传送数据,TCP必须解决可靠性,流量控制的问题,必须能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,同时TCP必须解决连接问题,这样TCP才能称得上是面向连接的,最后,TCP也必须能够解决通信安全性的问题。 * 协议交互这步可能会花费很多时间,所以一般来说操作系统会创建一个新的进程处理每个连接,当然协议简单就不需要在创建新的进程,这也是UnixFTP无法处理多于400个连接的原因 * Socket要求数据按照发送的次序接收,包丢失要重发,浪费网络资源,没有保持的连接和数据流,UDP的价值在于效率,如果通信子网可靠UDP大有用武之处.TCP和UDP都由端口的概念.TCP的可靠来源于确认和超时重传.要求先建立连接,传输后关闭,次序不变. UDP不需要实现连接,数据报是独立的,没有次序要求路径不同. * Datagram本身含有源和目标地址而TCP的数据包中不含目标地址 * 数据包的大小取决于网络情况,条件好可选择大的数据包 * 一般来说我们要指定1024以上的端口 * UDP最长的字节为65507个字节 * TCP非常复杂,因为要包容通信子网的不可靠因素 可靠并以一定比效率重要,视情况而定 * DatagramPacket类 接受和发送数据包的构造函数是不同的: 1 接受数据包: public DatagramPacket(byte[] buffer,int length) 两个参数1 byte[] buffer表示接受数据包的数组,length表示这个数组的长度。 2发送数据包: public DatagramPacket(byte[] data,int length,InetAddress destination,int port) 除了包括接受的参数外还包括目标地址和端口 * DatagramPacket类(续) 创建一个DatagramPacket: String s=“This is a Test”; byte[] data =s.getBytes(“ASCII”); try{ InetAddress ia=InetAddress.getByName(“”); int port=80 DatagramPacket dp=new DatagramPacket(data,data.length,ia,port); } catch(IOException e){…} * DatagramSocket类 与DatagramPacket类似发送与接受Socket只是构造函数不相同 发送Socket对象 DatagramSocket client=new DatagramSocket() 由于发送无需关心发送端口所以操作系统会自动分配一个端口发送时服务器的端口已经写在了DatagramPacket中了 接受Socket对象 DatagramSocket server=new DatagramSocket(port) 由于需要监听客户端Socket所以必须指定port * DatagramSocket类(续) 客户端程序例子: InetAddress server=InetAddress.getName(“”); BufferReader userInput=new BufferReader(new inputStreamReader(System.in)); DatagramSocket theSocket=new DatagramSocket(); while(true){ String theLine=userInput.readLine(); if(theLine.equals(“.”))break; byte[] data=theLine.getBytes(“UTF-8”); DatagramPacket theOutput=new DatagramPacket(data,data.length,server,port); theSocket.send(theOutput); } } * DatagramSocket类(续) 服务器端程序例子: DatagramSocket server=new DatagramSocket(port); DatagramPacket packet=new DatagramPacket(buffer,buffer.length); while(true){ server.receive(packet); String s=new String(packet.getData(),0,packet.getLength(),”UTF-8”); Syst
您可能关注的文档
- 《技术分析之K线1》.ppt
- 《技术分析之K线》.ppt
- 《技术分析精华 K线图形入门集锦》.doc
- 《技术分析系列教程10--K线基础知识(蒲博函)》.ppt
- 《技术分析系列教程12--两根K线组合(蒲博函)》.ppt
- 《技术分析系列教程13--三根K线组合(蒲博函)》.ppt
- 《技术分析系列教程14--多根K线组合(蒲博函)》.ppt
- 《技术资料-LED-深度分析:白光LED散热与O2PERA封装技术》.pdf
- 《揭秘手机制造流程 LG烟台青岛工厂大曝光》.doc
- 《搭建java开发环境》.pdf
- 深度解析(2026)《ISO 22002-12025食品安全前提方案—第1部分:食品制造》.pptx
- 深度解析(2026)《ISO 22002-52025食品安全前提方案—第5部分:运输和储存》.pptx
- 深度解析(2026)《ISO 22002-42025 食品安全前提方案 — 第4部分:食品包装制造》.pptx
- 徒步活动策划方案.doc
- 深度解析(2026)《ISO 22002-62025食品安全前提方案—第6部分:饲料及动物食品生产》.pptx
- 2026年新版郯城期末真题卷.doc
- 深度解析(2026)《ISO 22476-72012岩土工程勘察与测试 — 现场测试 — 第7部分:钻孔千斤顶试验》.pptx
- 深度解析(2026)《ISO 22090-22014 船舶与海洋技术 — 航向传送装置(THD) — 第2部分:地磁原理》.pptx
- 深度解析(2026)《ISO 23584-22012 光学和光子学 — 参考字典规范 — 第 2 部分:类与特性定义》:构建智能制造数据基石的专家视角与未来展望.pptx
- 深度解析(2026)《ISO 22932-92025 Mining — Vocabulary — Part 9 Drainage》:构建未来矿山“水脉”治理与可持续发展的新语言体系.pptx
原创力文档


文档评论(0)