c21java网络编程基础.ppt_第1页
c21java网络编程基础.ppt_第2页
c21java网络编程基础.ppt_第3页
c21java网络编程基础.ppt_第4页
c21java网络编程基础.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java 网络编程基础,第 21 章,回顾,File 类 流的概念 流的分类 流的串联使用 字节/字符流转换 RandomAccessFile 类 运行可执行文件,目标,TCP/IP 通信 UDP 通信 广播数据包 Web 相关类,网络,实现资源共享和通信 连接终端系统(主机)的通信系统,客户端/服务器模式,服务器和客户端共同承担计算 客户端 向另一台计算机请求服务的计算机 服务器 处理客户端请求的计算机 优点 服务器和客户端分摊工作 服务器可以同时为数千台客户端服务 多个客户端可以同时访问服务器,硬件,计算机通过线缆连接 网络接口卡 (NIC) 用于将计算机连接至线缆,也称为网络适配器,协议,网络中计算机之间通信的规则 常用的协议 超文本传输协议 (HTTP) 文件传输协议 (FTP) 简单邮件传输协议 (SMTP) 网络新闻传输协议 (NNTP),端口,用于区分同一机器上不同的通信程序 0-1023 系统预定义 1024-65535 一般应用程序使用 常用的端口,IP 地址 6-1,作用 区分网络上不同的机器 特点 网络上每台计算机IP 地址都是唯一的 由4个字节组成的32位二进制数 常用四个小数点隔开的十进制数字表示,每个数字代表一个字节 分为网络 ID 和主机 ID两段 分为A、B、C 、 D和 E 类,IP 地址 6-2,A类地址,A类地址用于主机数目非常多的网络。 A类地址的最高位为0,接下来的7位完成网络ID,剩余的24位二进制位代表主机ID。A类地址允许126个网络,每个网络大约一千七百万台主机;第一个数字是1126。 127是一个特殊的网络ID,又称本机网络,可用来检查TCPIP协议工作状态。如可用下列命令检查TCP/IP是否工作正常 ping ,IP地址 6-3,B类地址,B类地址用于中型到大型的网络。 B类地址的最高位为10,接下来的14位完成网络ID,剩余的16位二进制位代表主机ID。B类地址允许16384个网络,每个网络大约65000台主机;第一个数字是128191,IP地址 6-4,C类地址,C类地址用于小型本地网络。 C类地址的最高位为110,接下来的21位完成网络ID,剩余的8位二进制位代表主机ID。C类地址允许大约二百万个网络,每个网络有254台主机;第一个数字是192223,IP地址 6-5,D类地址,D类地址用于多播。一个多播地址可能包括1台或更多主机,或根本没有。 D类地址的最高位为1110;第一个数字是224239。剩余的位设计客户机参加的特定组。在多播操作中没有网络或主机位,数据包将传送到网络中选定的主机子集中。只有注册了多播地址的主机才能接收到数据包。Microsoft支持D类地址,IP地址 6-6,E类 第一个数字为240-255,暂时保留,作为实验或将来使用,域名系统(DNS),将特定 IP 地址映射至字符串 比如 2 域名为 优点 方便人的记忆 映射由域名服务器系统维护,Java 网络基础类, 包 InetAddress Socket、ServerSocket 和 SocketImpl DatagramPacket 和 DatagramSocket URL、URLConnection 和 URLEncoder MulticastSocket,InetAddress,封装 IP 地址和 DNS 工厂方法用于创建实例 InetAddress getLocalHost() InetAddress getByName(String HostName) 例程序 Ch3_1InetAddressTest.java,套接字,是 Internet 通信的端点 与主机地址和端口地址相关联 客户端和服务器通过套接字建立连接和进行通信 TCP/IP 套接字 较可靠的双向流协议 发送任意数量的数据 提供消息确认、错误检测和错误恢复等服务 UDP 套接字 比较不可靠,TCP/IP 通信,Socket,ServerSocket,输入流,输出流,输出流,输入流,建立连接,Socket,Accept(),过程类似打电话,Socket,建立服务器和客户端之间的连接 构造函数 Socket(String hostName, int port) Socket(InetAddress a, int port) 可用方法 InetAddress getInetAddress( ) int getPort( ) int getLocalPort( ) InputStream getInputStream() OutputStream getOutputStream(),ServerSocket,注册自己时表示对客户端连接感兴趣 构造函数 ServerSocket(int port) ServerSocket(int port, int maxqu) accept( ) 方法 用于等待客户端触发通信 会阻塞线程,等待直到有客户连接才返回 例程序 Ch3_2PassClient.java Ch3_3PassServer.java,UDP 通信,DatagramSocket,DatagramPacket,DatagramSocket,DatagramPacket,过程类似发信件,DatagramPacket,起到数据容器作用的类 构造函数 DatagramPacket(byte data, int size) DatagramPacket(byte data, int size, InetAddress I, int port),DatagramSocket,用于发送或接收 DatagramPacket 构造函数 DatagramSocket() DatagramSocket(int port) 可用方法 void send(DatagramPacket d) void receive(DatagramPacket p) void close() 例程序 Ch3_4DatagramClient.java Ch3_5DatagramServer.java,广播通信 3-1,特点 一个发送,多个接收。就象电视台播放节目 广播地址 55 类 MulticastSocket DatagramPacket,广播通信 3-2,广播 / 构造广播 Socket MulticastSocket s = new MulticastSocket(6789); / 加入组 InetAddress group = InetAddress.getByName(““); s.joinGroup(group); / 组数据包 String msg = “Hello“; DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), group, 6789); / 设置发送范围、发送 s. setTimeToLive(1); s.send(hi);,广播通信 3-3,接收 / 构造广播 Socket MulticastSocket s = new MulticastSocket(6789); / 加入组 InetAddress group = InetAddress.getByName(““); s.joinGroup(group); / 准备缓冲区 byte buf = new byte1000; DatagramPacket recv = new DatagramPacket(buf, buf.length); / 接收、离开 s.receive(recv); s.leaveGroup(group);,URL 2-1,指向 Internet 上的资源文件 URL 类提供 API 来访问 Internet 上的信息 URL 的组件 协议 IP 地址或主机名 端口号 实际文件路径 如 http:/localhost:8084/index.htm,URL 2-2,构造函数 URL(String urlname) URL(String protocol, String hostname, int port, String path) URL(String protocol, String hostname, String path) 例程序 Ch3_6Fetch.java,URLConnection,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论