1 / 71

高级 Internet 程序设计

高级 Internet 程序设计. Java 网络程序设计. 主要内容. 第一部分 TCP/IP 与 Internet 程序设计 TCP/IP 基础 Java 简介 Socket SMTP 通讯协议 POP3 通讯协议 服务器端的 FTP 通讯协议. 客户端的 FTP 通讯协议 HTTP 通讯协议与 Web 服务器 Java Web 浏览器 聊天程序的客户端/服务器端 网络游戏 JSSE 与 HTTPS 服务器. 第二部分 企业网络技术 企业解决方案 Java 档案 Java Plug-in 与 HTML Converter

yvonne
Download Presentation

高级 Internet 程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 高级Internet程序设计 Java网络程序设计

  2. 主要内容 • 第一部分 TCP/IP与Internet程序设计 • TCP/IP基础 • Java简介 • Socket • SMTP通讯协议 • POP3通讯协议 • 服务器端的FTP通讯协议

  3. 客户端的FTP通讯协议 • HTTP通讯协议与Web服务器 • Java Web浏览器 • 聊天程序的客户端/服务器端 • 网络游戏 • JSSE与HTTPS服务器

  4. 第二部分 企业网络技术 • 企业解决方案 • Java档案 • Java Plug-in 与HTML Converter • Java安全性原则 • 三层体系结构Socket与JDBC • JavaMail API • Java Web Start • J2EE连接器架构

  5. TCP/IP基础 1.1 历史 1)ARPANET: 仅仅用于同类软、硬件系统; 使用IMP进行主机连接; NWG协议; http://som.csudh.edu/cis/ 2)1974年TCP/IP 3)BSD Unix+TCP/IP->BSD API Windows Socket API Java.net API

  6. 1.2 TCP/IP技术模型

  7. 1.3 TCP与UDP • TCP: Telnet HTTP FTP SMTP • UDP:OICQ NFS DNS TFTP •  BOOTP SNMP • 1.4 IP地址(IPv4、IPv6) • IP分类、InterNIC • 1.5 域名系统 • DNS、 顶级 、查询算法 • 1.6 通信端口 • 大小范围 • 1.7 RFC文件 • 格式、查询

  8. 1.8 网络的拓扑结构 • 对等、C/S • 1.9 网络分类 1)局域网:几米~1公里 2) 城域网:10公里~100公里 3) 广域网: 4) Internet:

  9. Java简介 • 2.1 Java的版本 • Java 2有3种版本:J2ME、J2SE、J2EE。 • 2.2 Java的应用范畴 • Java从应用的范畴可分为5类: • 2-Tier Client-and-Server Architecture • 2-Tier HTML-based Architecture • 3-Tier HTML-based Architecture

  10. 3-Tier Applet-based Architecture • Java Web Start • 2.2.1 2-Tier Client-and-Server Architecture 客户 服务器 Java Application Socket JDBC EJB/CORBA computer computer

  11. 浏览器 Web服务器 HTML Java Servlet JSP • 2.2.2 2-Tier HTML-based Architecture computer computer

  12. 浏览器 后台服务器 Web容器 HTML Socket/RMI JDBC EJB/CORBA Java Servlet JSP • 2.2.3 3-Tier HTML-based Architecture computer computer computer

  13. 浏览器 后台服务器 Web容器 Java Applet Socket/RMI JDBC EJB/CORBA Java Servlet JSP • 2.2.4 3-Tier Applet-based Architecture computer computer computer

  14. computer Internet Explorer • 2.2.5 Java Web Start computer computer 服务器端Java应用程序 Java Web Start

  15. 应用程序 Socket API TCP UDP 网络 Socket • 3.1 Berkeley Socket • Berkeley Socket Interface Berkeley Software Distribution • Berkeley网络套接字

  16. 发送 接收 computer computer 接收 发送 • 分为Stream Socket(面向连接协议) 和Datagram Socket(无连接协议)两类 • 1)Stream Socket • 2)Stream Socket(TCP)在服务器端的开发流程 • 3) Stream Socket(TCP)在客户器端的开发流程

  17. Socket() Socket() Bind() Listen() Accept() Connect() Recv()/read() Send()/write() Closesocket() Closesocket()

  18. 发送 接收 computer computer Socket() Bind() Recvfrom() Sendto() Closesocket() • 4)Datagram Socket • 5)Datagram Socket (UDP) 应用程序

  19. 3.2 Microsoft Windows Socket • 1)WinSock API • 体系结构与BSD Socket API相似,同时不同版本WinSock具有兼容性。可分为四类:BSD Socket API、WinSock Extended API、转换函数和数据库函数。 • 2)BSD Socket API • 3)WinSock扩展函数 • 4)转换函数 • 5)数据库函数

  20. 6)WinSock Stream Socket客户端/服务器端 • 7)WinSock Datagram Socket • 3.3 Java Socket • Java.net支持Socket API,有六类函数。 • 1)处理URL • 2)处理主机名称及IP地址 • 3)处理UDP通讯协议 • 4)处理TCP通讯协议

  21. Datagram socket ServerSocket DatagramPacket 接受 Socket 接收 读 写 发送 写 读 关闭 关闭 关闭 服务器端 客户端 • 5)处理网络(Authentication)及权限(Permission) • 6)内容处理器(ContentHandle) • Java在TCP和UDP的体系结构如下:

  22. 3.4 C/S模式实例演示 • 1)hello world程序 • 2)echo程序 • 3)多线程服务器程序 • 4)客户端图形界面的设计

  23. 3.5 多线程网络编程 • 3.5.1 创建线程 • 1)通过扩展Thread类来构造 • Public class MyThread extends Thread • { • public void run() • { //线程体代码 • } • MyThread testThread=new MyThread();

  24. 2)通过实现Runnable接口来构造 • Public interface Runnable { • public abstract void run(); • } • Public class MyRunnable implements Runnable { • public void run() • {//线程体代码 • } • } • MyRunnable firstRunnable=new MyRunnable(); • Thread TestThread=new Thread(firstRunnable);

  25. 3.5.2 线程的启动 • 3.5.3 线程状态 • Wait notify notifyAll volatile synchronized • 3.6 异常机制 • 3.6.1 使用try、catch、finally、throw关键字 • 3.6.2 异常处理的设计原则 • 1)处理与方法逻辑分离 • 2)合理运用异常的父类 • 3.7 可视化用户界面开发

  26. 两种支持API: • AWT Abstract Window Toolkit • JFC/Swing Java Foundation Classes • 3.8 Java的流 • 3.8.1 字符流 • 处理字符流:Reader类、Writer类 • 处理字节流:InputStream类、OutputStream类 • 3.8.2 文件流

  27. 3.8.3 管道流 • 3.8.4 连接输出数据 • SequenceInputStream类 • Enumeration类 • 3.8.5 过滤流 • 1)DataInputStream与DataOutputStream • 2)BufferInputStream与BufferOutputStream • 3)CheckedInputStream与CheckedOutputStream • 4)PushbackInputStream • 5)PrintStream

  28. 3.8.6 对象的序列化 • ObjectInputStream类与ObjectOutputStream类 • 3.8.7 网络中的流 • 首先生成一个URL类,然后对相应的资源进行不同类型的处理。 • 1)得到HTML的流 • 2)获得网络图像 • 3)读取网络表信息 • 3.8.8 压缩流 • 3.8.9 中文流

  29. SMTP通讯协议 • 4.1 SMTP简介 • 1)Spooling • 2)邮件头 • 邮件内容 • RFC822 • 3)RFC821 • 命令

  30. 发件端 连接(端口25) 邮件服务器 准备邮件服务 邮件服务器响应 成功 邮件来源 成功 接收邮件 成功 接收数据 开始邮件传递 发送邮件头部分 发送邮件内容部分 发送CRLF、CRLF结尾 成功 退出 退出 • 流程:

  31. 4.2 SMTP客户端-Java应用程序、Java Applet

  32. POP3通讯协议 • 5.1 POP3介绍 • RFC1081 • 分为三个阶段: • (1)Authorization: • (2)Transaction: • (3)Update

  33. 发件端 连接(端口110) 邮件服务器 来自邮件服务的欢迎 用户登陆 需要输入密码 密码确认 准备接收邮件 STAT +OK<#><size> LIST[<mail#>] +OK… RETR<mail#> +OK<size> 邮件头和内容 退出 POP3服务器停止服务 • 流程图:

  34. 5.2 POP3客户端-Java应用程序、Java Applet

  35. 用户界面 协议解释器 协议解释器 数据传送过程(DTP) 数据传送过程(DTP) 文件系统 文件系统 FTP客户端 FTP服务器端 服务器端的FTP通讯协议 • 6.1 FTP简介 • 1)FTP体系结构

  36. 2) FTP指令 • RFC0959 • 访问指令 • 传输指令 • 服务指令 • 3)响应信息 • 4)FTP流程

  37. 发件端 连接(端口21) 邮件服务器 服务器已准备 用户名 需要密码 密码 用户登陆 端口设置 命令成功 传送文件 打开ASCII码模式 传输完成 退出 221 Goodbye

  38. 6.2 FTP服务器端程序设计

  39. 客户端的FTP通讯协议 • 7.1 FTP API介绍 • Sun.net和sun.net.ftp • 相关类: • FtpClient、FtpInputStream、NetworkClient、TelnetInputStream、TelnetOutputStream、TransferProtocolClient

  40. 7.2 FTP客户端程序设计

  41. HTTP通讯协议与Web服务器 • 8.1 HTTP通讯协议 • (1)HTTP头 • (2)HTTP方法 • (3)HTTP响应信息 • (4)URL • (5)HTTP流程

  42. 连接 Web浏览器 Web服务器 HTML请求 HTML响应 关闭连接 • 8.2 Web服务器示例

  43. Java Web浏览器 • 9.1 Java Web浏览器核心 • JEditorPane • 与VB、Dephi、C++ Builder比较. • 9.2 HyperlinkListener • 9.3 动画显示网页下载状态 • 9.4 查看及保存网页源代码 • 9.5 网页浏览功能与发送E-mail

  44. 9.6 设置HTTP代理服务器 • 9.7 HTTP程序演示 • 9.8 HTTProxy程序演示

  45. 聊天程序的客户端/服务器端 • 10.1 聊天程序的客户端-Java Applet • 10.2 聊天程序的客户端-Java Application • 10.3 聊天程序的服务器程序设计 • 逻辑自行定义 • 处理连接和信息传递 • 10.3聊天程序演示

  46. 网络游戏 • 11.1 游戏体系结构与设置 • 11.2 游戏服务器 • 11.3 游戏客户端界面

  47. JSSE与HTTPS服务器 • 12.1 SSL • Java安全性原则 • Java身份证和授权服务(Java Authentication and Authorization Service, JAAS) • Java加密扩展(Java Cryptography Extension, JCE) • Java安全套接字扩展(Java Secure Socket Extension, JSSE)

  48. 功能 • 1)数据加密(Data Encryption) SSL的体系结构

  49. Client Hello 客户端 Server Hello 服务器端 认证 认证请求 服务器公钥交换 服务器完成 认证 客户端公钥交换 认证鉴定 更改密码说明 完成 更改密码说明 完成 被加密的数据 SSL Handshake • RSA、Diffie-Hellman • 2)数字签名 • 3)SSL建立完整的安全性连接

More Related