《计算概论》课程 第十九讲 C 程序设计语言应用

Size: px
Start display at page:

Download "《计算概论》课程 第十九讲 C 程序设计语言应用"

Transcription

1 Java 高级技术 课程 Java 语言的高级特性 李戈 北京大学信息科学技术学院软件研究所 2009 年 5 月 8 日

2 ISO/OSI 七层协议模型 应用层表示层会话层传输层网络层链路层物理层 应用层协议表示层协议会话层协议传输层协议网络层协议链路层协议物理层协议 应用层表示层会话层传输层网络层链路层物理层

3 ISO/OSI 模型的作用

4 TCP/IP 与 OSI 模型的关系 应用层表示层会话层传输层网络层链路层 应用层传输层网际层网络层 物理层

5 TCP/IP 协议族 应用层 FTP Telnet HTTP SMTP TFTP DNS 传输层 TCP UDP 网际层 IP 网络层 802.3:CSMA/CD 网络 802.4: 令牌总线网络 802.5: 令牌环网

6 TCP/IP 协议族相关层的作用 应用层 FTP Telnet HTTP SMTP TFTP DNS 传输层 应用层 提供各种服务 : FTP TCP UDP Telnet 网际层 HTTP IP SMTP 网络层 DNS

7 TCP/IP 协议族相关层的作用 应用层 FTP Telnet HTTP SMTP TFTP DNS 传输层 传输层 为应用层提供端到端通信服务 ; 主要包含三个协议 : TCP UDP TCP( 传输控制协议 ) 网际层 UDP( 用户数据报协议 ) IP ICMP( 互联网控制消息协议 ) 网络层

8 TCP/IP 协议族相关层的作用 应用层 FTP Telnet HTTP SMTP TFTP DNS 传输层 TCP UDP 网际层 IP 网络层 传输层 为应用层提供端到端通信服务 ; TCP( 传输控制协议 ) 负责把大量的用户数据按一定的长度组成多个数据包进行发送, 并在接受到数据后按分解顺序重组和恢复用户数据 ; 为了达到上述目的, 需要进行顺序控制 差错检验 重发管理等工作 ;

9 TCP/IP 协议族相关层的作用 应用层 FTP Telnet HTTP SMTP TFTP DNS 传输层 为应用层提供端到端通信服务 ; 传输层 UDP( 用户数据报协议 ) 网际层 TCP UDP 仅负责把大量的用户数据拆分成多个数据包进行发送 ; IP 但不提供顺序控制 差错检验 重发管理等服务 ; 网络层

10 TCP/IP 协议族相关层的作用 应用层 FTP Telnet HTTP SMTP TFTP DNS 传输层 传输层 为应用层提供端到端通信服务 ; ICMP( 互联网控制消息协议 ) 网际层 网络层 TCP UDP IP 用于端主机和网关及互联网管理中心等的消息通信, 以达到控制管理网络运行的目的 通俗讲 : 用于支持管理者之间的对话 ;

11 TCP/IP 协议族相关层的作用 应用层 FTP Telnet HTTP SMTP TFTP DNS 传输层 TCP UDP 网际层 IP 网络层 网际层 网际层所使用的协议是 IP 协议 ; 它把传输层送来的消息组装成 IP 数据包, 并把 IP 数据包传递给网络层 ; 全网地址的识别与管理 ; IP 数据包路由功能 ; 发送或接受时, 使 IP 数据包的长度与通信子网所允许的数据包长度相匹配 ;

12 IP 报文的构成

13 TCP/IP 协议族相关层的作用 应用层 FTP Telnet HTTP SMTP TFTP DNS 传输层 TCP UDP 网际层 IP 网络层 网络层 与 OSI 协议的物理层 数据链路层及网络层的一部分相对应 ; 该层中所使用的协议为各通信子网本身固有的协议 ; CSMA/CD 网络 令牌总线网 令牌环网 目的 : 传输网际层的信息, 为网际层提供服务 ;

14 JDK 的预定义类库 Java 对网络通信的支持 能够支持 Java 程序直接发送与接收 TCP 数据段或 UDP 数据报 能够辅助实现基于 TCP 和 UDP 的编程 ; 能够帮助程序员处理 TCP 之上的应用层协议 HTTP FTP FILE HTTPS 等 ; 通过 HTTP FTP FILE 协议访问 URL 定位的网上资源 ; 以面向连接的 TCP 为基础, 实现 Telnet FTP SMTP 等应用层协议的客户程序或服务程序 ; 不支持网络层 IP 协议, 无法使用预定义的类直接在 Java 程序中发送或接收原始 IP 数据报

15 Java 对网络通信的支持 JDK 预定义的类均存放在程序包 java.net 中, 使用哪些类取决于所需处理的通信协议 基于 TCP 的应用程序可使用 Socket ServerSocket 等类 ; 基于 UDP 的应用程序则使用 DatagramPacket DatagramSocket MulticastSocket 等类 ; 基于 HTTP 和 FTP 等协议直接访问 URL 资源的应用程序可使用 URL URLConnection 等类 ; 注重网络通信安全的 HTTPS 应用程序则使用 SSLSocketFactory SSLSocket SSLSession 等类 ;

16 三种典型的网络应用 基于 URL 的通信 基于 TCP 的通信 基于 UDP 的通信

17 基于 URL 的通信 统一资源定位符 URL(Uniform Resource Locator) 网上的资源可通过一个 URL 进行检索或访问 access method://server name[:port]/directory/filename access method 指定信息服务的提供方式 ; server name 服务器的域名或 IP 地址 ; port, 可选字段, 可进入特定服务的端口 ; /directory/file name 路径名 文件名 ; JDK 提供的预定义类可以通过 URL 对象读取资源, 也可以使用 URL 连接读 / 写资源

18 URL 对象 URL 类是一个 URL 的抽象 提供了最简单的网络编程接口 : 只需使用一次方法调用即可下载由 URL 地址指定的网络资源的内容 利用 URL 对象下载资源之前必须创建一个 URL 类的实例 : public URL(String protocol, String host, int port, String file); public URL(String protocol, String host, String file); public URL(String protocol, String host, int port, String file, URLStreamHandler handler); public URL(String spec); public URL(URL context, String spec); public URL(URL context, String spec, URLStreamHandler handler);

19 创建 URL 对象 若存在以下 URL 地址标识的两个超文本文档资源 : 则, 可利用该 URL 创建一个 URL 对象, 如下所示 : URL url = new URL(" 上述代码等价于 : URL url = new URL("http", " 81, "/docs/ejb.html");

20 创建 URL 对象 利用一个已有的 URL 对象加上一个相对 URL 地址可创建一个新的 URL 对象 : URL selab = new URL(" URL corba = new URL(selab, "corba.html"); URL ejb = new URL(selab, "ejb.html"); URL corbabtutor = new URL(corba, "#tutorials"); URL ejbtutor = new URL(ejb, "#tutorials");

21 import java.net.*; public class ParseURL { public static void main(string[] args) throws Exception { URL url = new URL(" + "tutorial/index.html#downloading"); System.out.println(" 协议 :" + url.getprotocol()); System.out.println(" 主机 :" + url.gethost()); System.out.println(" 端口 :" + url.getport()); System.out.println(" 文件名 :" + url.getfile()); System.out.println(" 引用 :" + url.getref()); System.out.println(" 默认端口 :" + url.getdefaultport());

22 读取 URL 内容 利用 URL 对象的 openstream() 方法可获取一个绑定到该 URL 地址指定资源的输入流, 通过读取该输入流即可访问整个资源的内容 openstream( ) 方法的接口如下 : public final InputStream openstream() throws java.io.ioexception 该方法返回的输入流类型为 InputStream

23 import java.net.*; import java.io.*; public class ReadURL { public static void main(string[] args) throws Exception { if (args.length!= 1) { System.out.println(" 用法 :ReadURL <URL 地址 >"); return; URL url = new URL(args[0]); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String inputline; while ((inputline = in.readline())!= null) System.out.println(inputLine); in.close();

24 BufferedReader 程序说明 从字符输入流中读取文本, 缓冲各个字符, 从而实现字符 数组和行的高效读取 可以指定缓冲区的大小, 或者可使用默认的大小 InputStreamReader 将类型称为 InputStream 的返回值转换为面向字符的流 ; 类 BufferedReader 将 InputStreamReader 进一步装饰为带缓冲的输入, 可利用 readline() 方法读取一行字符数据 ;

25 URL 连接 URL 连接 Java 应用程序与 URL 资源之间的一个通信链路 ; 应用程序获取 URLConnection 对象后不仅可实现读取 URL 的操作, 而且可实现写入 URL 的操作 ; 创建 URL 对象后, 调用 openconnection() 方法即可获取一个 URL 连接对象 : try { URL zsu = new URL(" URLConnection conn = zsu.openconnection(); catch (MalformedURLException exc) {... // 创建新 URL 失败时的处理 catch (IOException exc) {... // 调用 openconnection() 失败...

26 import java.net.*; import java.io.*; 从 URL 连接读取资源的典型编程模式 public class ReadConnection { public static void main(string[ ] args) throws Exception { if (args.length!= 1) { System.out.println(" 用法 :ReadConnection <url 地址 >"); return; URL url = new URL(args[0]); URLConnection conn = url.openconnection(); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputline; while ((inputline = in.readline())!= null) System.out.println(inputLine); in.close();

27 URL 连接 访问 URL 资源的属性 getcontentlength() 方法 : 获取资源的内容长度 ; getcontenttype() 方法 : 获取资源的内容类型 ; getcontentencoding() 方法 : 获取资源的内容编码 ; 向 URL 资源写数据 利用 URL 连接向 URL 写数据相当于在 HTML 中提交一个表单中的数据 ; 将数据写入 URL 连接之前, 必须调用 URLEncoder 类的 encode() 方法, 将数据转换为 MIME 格式 ; 多用途 Internet 邮件扩展 (Multipurpose Internet Mail Extensions)

28 import java.net.*; import java.io.*; 向 URL 资源写数据的典型编程模式 public class WriteConnection { public static void main(string[] args) throws Exception { if (args.length!= 1) { System.err.println(" 用法 :WriteConnection < 字符串 >"); return; // 向 URL 连接写一个字符串 URL url = new URL(" URLConnection conn = url.openconnection(); conn.setdooutput(true); PrintWriter out = new PrintWriter(conn.getOutputStream()); out.println("string=" + URLEncoder.encode(args[0], "UTF-8")); out.close(); // 从同一个 URL 连接中读取 CGI 脚本返回的数据 BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputline; while ((inputline = in.readline())!= null) System.out.println(inputLine); in.close();

29 程序说明 conn.setdooutput(true); 将此 URLConnection 的 dooutput 字段的值设置为指定的值 URL 连接可用于输入和 / 或输出 将 dooutput 标志设置为 true, 指示应用程序要将数据写入 URL 连接 PrintWriter out = new PrintWriter(conn.getOutputStream()); conn.getoutputstream() 返回写入到此连接的输出流 (OutputStream); 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter; PrintWriter 是 Writer 的子类, 用于向文本输出流打印对象的格式化表示 ; out.println("string=" + URLEncoder.encode(args[0], "UTF-8"));

30 三种典型的网络应用 基于 URL 的通信 基于 TCP 的通信 基于 UDP 的通信

31 基于 TCP 的通信 基于 TCP 的 C/S 编程 为基于 Internet 的 C/S 应用, 提供可靠的数据通信手段 在基于 TCP 的通信中, 应用程序可通过基于 Socket 的编程为应用提供可靠的数据通信 Socket 使用基于 TCP 协议的双向通信时, 网络中的两个应用程序之间必须首先建立一个连接, 这一连接的两个端点分别被称为 socket;

32 Socket 基于 Socket 的通信 起源于 BSD Unix, 又译作 套接字, 是网络通信的一种底层编程接口 ; 由于 socket 被绑定到某一固定的端口号, 故 TCP 可将数据传输给正确的应用程序 ; 从应用编程的角度看, 应用程序可将一个输入流或一个输出流绑定到某一 socket, 读写这些输入 / 输出流即可实现基于 TCP 的通信 ;

33 C/S 编程的需求 基于 Socket 的 C/S 编程模式 支持在一台主机上运行的单个服务程序为多个不同的客户程序提供服务 实现方式 服务程序可选定一个固定的端口号对外发布服务, 客户程序则必须先按约定的主机与端口号向服务程序发送一个要求建立连接的请求, 申请建立一个到服务程序的连接 ; 服务程序在收到某一客户程序的连接请求后, 并不是利用对外发布的那个端口号建立与该客户程序的连接, 而是另外分配一个新的端口号建立与客户程序之间的连接, 原端口号仍用于监听其他客户程序的连接请求 ;

34 作用 基于 Socket 的 C/S 编程模式 保证了服务程序对外公布的端口号仅用于处理客户程序要求建立连接的请求, 不会因为该端口因长期处理客户程序的服务请求而导致其他客户程序的阻塞 针对这一通信模式,java.net 程序包将基于 TCP 通信的 socket 封装为两个类 : 类 Socket 表达了一个用于建立 TCP 连接的 socket, 该 socket 既可由客户程序使用, 也可由服务程序使用 ; 类 ServerSocket 则是一个服务端专门监听客户程序连接请求的 socket 的抽象, 仅在服务程序中使用

35 基于 Socket 的客户端编程模式 基于 socket 通信的客户程序 首先通过指定主机 ( 主机名或 InetAddress 的实例 ) 和端口号构造一个 socket; 然后调用 Socket 类的 getinputstream() 和 getoutputstream() 分别打开与该 socket 关联的输入流和输出流 ; 而后, 依照服务程序约定的协议读取输入流或写入输出流 ; 最后, 依次关闭输入 输出流和 socket;

36 Socket 类提供了多种重载的构造方法 : Socket() Socket(String host, int port) Socket(InetAddress addr, int port) 基于 Socket 的客户端编程模式 Socket(String host, int port, InetAddress localaddr, int localport) Socket(InetAddress addr, int port, InetAddress localaddr, int localport) Socket(String host, int port, boolean isstream) Socket(InetAddress host, int port, boolean isstream) host 和 addr 用于指定远程主机,port 用于指定远程主机的端口号 ; localaddr 和 localport 分别指定新 socket 绑定的本地主机名和端口号 ; isstream 为 true 表示创建一个面向连接的 socket( 又称 TCP socket), 否则创建一个面向数据报的 socket( 又称 UDP socket), 不提供该参数时的默认值为 true

37 import java.net.*; import java.io.*; public class EchoClient { public static void main(string[ ] args) throws Exception { if (args.length!= 2) { System.out.println(" 用法 :EchoClient < 主机名 > < 端口号 >"); return; // 建立连接并打开相关联的输入流和输出流 Socket socket = new Socket(args[0], Integer.parseInt(args[1])); // 将字符串参数作为有符号的十进制整数进行解析 System.out.println(" 当前 socket 信息 :" + socket); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 将控制台输入的字符串发送给服务端, 并显示从服务端获取的处理结果 BufferedReader stdin = new BufferedReader(new InputStreamReader( System.in)); String userinput; while ((userinput = stdin.readline())!= null) { out.println(userinput); System.out.println(" 返回 :" + in.readline()); stdin.close(); out.close(); in.close(); socket.close();

38 基于 Socket 的客户端编程模式 Socket 类提供了如下方法用于连接远程 socket 绑定本地 socket 或检查 socket 的连接和绑定状态 : 连接远程 socket void connect(socketaddress endpoint) throws IOException void connect(socketaddress endpoint, int timeout) throws IOException boolean isconnected() InetAddress getinetaddress() int getport() SocketAddress getremotesocketaddress() endpoint 用于指定远程主机的主机名与端口号 ; timeout 指定建立连接的超时限制, 该参数为 0 表示无超时约束

39 绑定本地 socket 基于 Socket 的客户端编程模式 void bind(socketaddress bindpoint) throws IOException boolean isbound() InetAddress getlocaladdress() int getlocalport() SocketAddress getlocalsocketaddress() bindpoint 用于指定本地主机的主机名与端口号 ; InetAddress 类是一个 IP 地址或域名的抽象 可以使用字符串表示的域名 字节数组表示的 IP 地址创建 InetAddress 类的一个实例

40 服务端功能 服务端编程模式 基于 socket 通信的服务程序负责监听对外发布的端口号, 该端口专用于处理客户程序的连接请求 服务端编程模式 首先通过指定监听的端口号创建一个 ServerSocket 实例 ; 然后调用该实例的 accept() 方法, 引起阻塞, 直至有一个客户程序发送连接请求到服务程序所监听的端口 ; 服务程序收到连接请求后将分配一个新端口号建立与客户程序的连接, 并返回该连接的一个 socket; 然后, 服务程序可调用该 socket 的 getinputstream( ) 和 getoutputstream( ) 方法获取与客户程序的连接相关联的输入流和输出流, 并依照预先约定的协议读输入流或写输出流 ; 完成所有通信后, 服务程序必须依次关闭所有输入流和输出流 所有已建立连接的 socket 以及专用于监听的 socket;

41 创建 ServerSocket 实例 ServerSocket 类专用于监听客户程序的连接请求, 它具有多种重载的构造方法 : ServerSocket() throws IOException ServerSocket(int port) throws IOException ServerSocket(int port, int backlog) throws IOException ServerSocket(int port, int backlog, InetAddress bindaddr) throws IOException port 指定服务程序将监听的本地主机端口号, 该参数为 0 表示随机选择一个当前未用的端口号 ; backlog 指定接入连接请求的最大队列长度 ; bindaddr 指定绑定到本地主机的地址

42 import java.net.*; import java.io.*; public class EchoServer { public static void main(string[] args) throws IOException { if (args.length!= 1) { System.out.println(" 用法 :EchoServer < 端口号 >"); return; // 监听客户程序的连接请求 ServerSocket listensocket = new ServerSocket(Integer.parseInt(args[0])); System.out.println(" 服务程序正在监听端口 " + args[0]); Socket socket = listensocket.accept(); // 从与客户程序的新建连接获取输入流和输出流 PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 从客户端读取数据, 并写回数据的加工结果 String message; while ((message = in.readline())!= null) { System.out.println(" 收到请求 :" + message); out.println(message.touppercase()); out.close(); in.close(); socket.close(); listensocket.close();

43 创建连接 在创建 ServerSocket 实例时并未建立连接, 可调用以下方法建立连接或获取连接的相关信息 : void bind(socketaddress endpoint) throws IOException void bind(socketaddress endpoint, int backlog) throws IOException boolean isbound() InetAddress getinetaddress() int getlocalport() SocketAddress getlocalsocketaddress() endpoint 指定服务程序本地主机的地址, 包括主机名与端口号 ; backlog 指定监听请求的队列长度

44 多线程服务程序 问题 服务端在同一时刻只能处理一个客户连接 一旦服务程序的 accept() 方法被调用, 服务程序主线程将持续执行客户程序发来的服务请求, 再无其他线程监听服务程序对外发布的端口, 导致后续的客户连接请求失败 解决方案 使用多线程编程, 让服务程序的主线程执行监听客户程序连接请求的任务, 而处理客户程序服务请求的任务则交由另一个新建的线程负责

45 class EchoThread extends Thread { Socket socket; EchoThread(Socket s) { socket = s; public void run() { System.out.println(" 正在为客户程序提供服务 :" + socket); try { PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream())); String message; while ((message = in.readline( ))!= null) { System.out.println(socket + " 请求 :" + message); out.println(message.touppercase()); out.close(); in.close(); socket.close(); catch (IOException exc) { exc.printstacktrace();

46 // 采用多线程方式实现的服务端程序 import java.io.*; import java.net.*; public class MTEchoServer { public static void main(string[] args) throws IOException { if (args.length!= 1) { System.out.println(" 用法 :MTServer < 端口号 >"); return; ServerSocket ss = new ServerSocket(Integer.parseInt(args[0])); System.out.println(" 服务程序正在监听端口 :" + args[0]); for ( ; ; ) new EchoThread(ss.accept()).start();

47 目的 应用示例 1: 端口扫描程序 检测某一主机的指定端口是否是活动端口 ; 原理 如果在建立与一个端口的连接时未抛出任何异常, 则表明该端口是活动的 用途 由于标准的系统服务通常使用默认的端口号, 故运行上述程序可检查一台服务器主机对外提供了哪些服务 一些特洛伊木马病毒程序都会自动打开被感染主机的某一端口, 通过扫描主机上异常的活动端口可以发现这些木马病毒的踪迹

48 端口 关于端口 因特网上数据的传输目标由主机和端口号组成 ; UDP 的每一数据报中均含有端口号信息 ; 端口采用 16 位数字标识, 作用 端口号的取值范围为 ; 编号为 的端口保留给系统服务使用 ; 一台主机上可能同时运行多个应用程序进程 ; 一个进程还可能使用多个不同的连接 ; 仅用 IP 地址无法惟一地标识数据包的源或目标 ; 端口为标识参与通信的主机 进程和连接提供支持 ;

49 import java.io.*; import java.net.*; public class Scanner { public static void main(string[] args) throws Exception { if (args.length!= 3) { System.out.println(" 用法 : Scanner < 主机名 > < 起始端口号 > < 终止端口号 >"); return; String host = args[0]; int from = Integer.parseInt(args[1]); int to = Integer.parseInt(args[2]); Socket socket = null; for (int port = from; port <= to; port++) { try { socket = new Socket(host, port); System.out.println(" 活动端口 :" + port); catch (ConnectException exc) { if (socket!= null) socket.close();

50 功能 应用示例 2:HTTP 服务程序 采用多线程的方式, 将浏览器发出的 Get 命令中由 URL 指定的资源返回给浏览器 ; 关于 http HTTP 协议采用典型的 请求 - 答复 通信模型 : 客户程序建立与服务程序的连接后, 向服务程序发送一个服务请求 ; 服务程序根据请求获取相应的 HTML 文档作为答复送回客户程序, 最后关闭连接

51 import java.net.*; import java.io.*; import java.util.*; public class Httpd { public static void main(string[] args) throws IOException { ServerSocket ss = new ServerSocket((args.length == 0)? 80 : Integer.parseInt(args[0])); System.out.println("HTTP 服务程序已就绪..."); while (true) new HttpdThread(ss.accept()).start(); class HttpdThread extends Thread { Socket socket; HttpdThread(Socket s) { socket = s; public void run() {

52 public void run() { try { // 打开与连接绑定的输入流和输出流 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "GBK")); OutputStream out = socket.getoutputstream(); // 读取客户请求 String request = in.readline(); System.out.println(" 收到请求 :" + request); // 根据 HTTP 协议分析客户请求内容 ( 只处理 GET 命令 ) StringTokenizer st = new StringTokenizer(request); if ((st.counttokens() >= 2) && st.nexttoken().equals("get")) { // 从请求中取出文档的文件名, 支持默认索引文件 String filename = st.nexttoken(); if (filename.startswith("/")) if (filename.endswith("/")) if (filename.equals("")) try { filename = filename.substring(1); filename += "index.html"; filename += "index.html"; // 读取文件中的内容并写到 socket 的输出流 InputStream file = new FileInputStream(filename); byte[] data = new byte[file.available()]; file.read(data); out.write(data); out.flush(); catch (FileNotFoundException exc) { PrintWriter pout = new PrintWriter(new OutputStreamWriter(out, "GBK"), true); pout.println(" 错误代码 404: 未发现目标!"); else { PrintWriter pout = new PrintWriter(newOutputStreamWriter(out,"GBK"), true); pout.println(" 错误代码 400: 错误的请求!"); socket.close(); catch (IOException exc) { System.out.println("I/O 错误 :" + exc);

53 // 打开与连接绑定的输入流和输出流 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "GBK")); OutputStream out = socket.getoutputstream(); // 读取客户请求 String request = in.readline(); System.out.println(" 收到请求 :" + request); // 根据 HTTP 协议分析客户请求内容 ( 只处理 GET 命令 ) StringTokenizer st = new StringTokenizer(request); // 将字符串分解为标记 if ((st.counttokens() >= 2) && st.nexttoken().equals("get")) { // 从请求中取出文档的文件名, 支持默认索引文件 String filename = st.nexttoken(); if (filename.startswith("/")) filename = filename.substring(1); if (filename.endswith("/")) filename += "index.html"; if (filename.equals("")) filename += "index.html"; try { // 读取文件中的内容并写到 socket 的输出流 InputStream file = new FileInputStream(filename); byte[ ] data = new byte[file.available()]; // 返回可以不受阻塞地读取的字节数 file.read(data); // 从输入流中读取一定数量的字节存储在缓冲区数组中 out.write(data); // 将 data.length 个字节从指定的 data 数组写入输出流 out.flush(); catch (FileNotFoundException exc) {

54 功能 应用示例 3: Telnet 客户程序 一个简单的 Telnet 程序, 可连接到一个 BBS 站点, 并可用 guest 身份登录到该 BBS; 使用两个线程 : 说明 TelnetWriter 负责向 Telnet 服务程序写入数据 ; TelnetReader 负责从 Telnet 服务程序读取数据 ; 该程序未根据 Telnet 协议对交互的数据进行处理 ; Telnet 协议规定了一些特殊字符的含义, 该程序未加以处理, 所以作为某些 BBS 应用的客户程序时屏幕上会出现乱码 ;

55 import java.io.*; import java.net.*; public class Telnet { public static void main(string[] args) throws IOException { if (args.length < 1) { System.out.println(" 用法 :Telnet < 主机名 > < 端口号 >"); return; Socket sock = new Socket(args[0], (args.length < 2)? 23 : Integer.parseInt(args[1])); // 创建一个写线程 new TelnetWriter(sock.getOutputStream()).start(); // 创建一个读线程 new TelnetReader(sock.getInputStream()).start();

56 class TelnetWriter extends Thread { private PrintStream out; public TelnetWriter(OutputStream out) { this.out = new PrintStream(out); public void run() { try { // 包装控制台输入流 BufferedReader in = new BufferedReader(new InputStreamReader( System.in)); // 反复将控制台输入写到 Telnet 服务程序 while (true) out.println(in.readline()); catch (IOException exc) { exc.printstacktrace();

57 class TelnetReader extends Thread { private InputStreamReader in; public TelnetReader(InputStream in) { this.in = new InputStreamReader(in); public void run() { try { // 反复将 Telnet 服务程序的反馈信息显示在控制台屏幕上 while (true) { // 从 Telnet 服务程序读取数据 int b = in.read(); if (b == -1) System.exit(0); // 将数据显示在控制台屏幕上 System.out.print((char) b); catch (IOException exc) { exc.printstacktrace();

58 应用示例 4: SMTP 客户程序 功能 一个简单的 SMTP 客户程序 SMTP 协议详细规定了服务程序每一答复代码的含义, 例如 : 代码 220 表示服务已就绪 ; 代码 250 表示请求执行的动作合法且已执行完毕 ; 代码 354 表示邮件输入开始, 直至以一个 <CR><LF>.<CR><LF> 序列 ( 即单独占一行的句号 ) 表示结束 ; 代码 501 表示参数有语法错误 ; 代码 550 表示请求执行的动作未执行或指定的邮箱无效, 等等 一个实用的 SMTP 客户程序必须对这些答复进行处理 ;

59 import java.io.*; import java.net.*; public class Mail { public static void main(string[] args) throws IOException { if (args.length!= 1) { System.out.println(" 用法 :Mail < 邮件服务器主机名 >"); return; // 与一个运行有 SMTP 服务程序的主机建立连接并打开输出流和输入流 Socket socket = new Socket(args[0], 25); PrintStream out = new PrintStream(socket.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 据 SMTP 协议规定格式提交邮件 getresponse(in); // 读取服务程序的欢迎信息 send(out, "HELO smtp.163.com \n"); // 打开传递信道 getresponse(in); send(out, "MAIL FROM: <ligechina@163.com>\n"); getresponse(in); send(out, "RCPT TO: <ligechina@163.com>\n"); getresponse(in); send(out, "DATA\n"); // DATA 表明以下为信件内容 getresponse(in); send(out, "Date: 癸丑仲夏十五日 \n"); send(out, "From: 西门吹雪 \n"); send(out, "To: 叶孤城 \n"); send(out, "Subject: 决战之前!\n"); send(out, " 这是一个由 Java 程序自动发送的邮件 \n"); send(out, "\r\n.\r\n"); // 句号独占一行表明内容结束 getresponse(in); send(out, "QUIT \n"); // 关闭传递信道 getresponse(in); out.close(); in.close(); socket.close(); // 将一条 SMTP 命令或邮件消息 msg 写到输出流 out 中 private static void send(printstream out, String msg) throws IOException { out.print(msg); System.out.print(">> " + msg); // 从输入流 in 中读取 SMTP 服务程序的答复消息 private static void getresponse(bufferedreader in) throws IOException { String msg = in.readline(); System.out.println("<< " + msg);

60 import java.io.*; import java.net.*; public class Mail { public static void main(string[] args) throws IOException { if (args.length!= 1) { System.out.println(" 用法 :Mail < 邮件服务器主机名 >"); return; // 与一个运行有 SMTP 服务程序的主机建立连接并打开输出流和输入流 Socket socket = new Socket(args[0], 25); PrintStream out = new PrintStream(socket.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 据 SMTP 协议规定格式提交邮件 getresponse(in); // 读取服务程序的欢迎信息 send(out, "HELO smtp.163.com \n"); // 打开传递信道 getresponse(in); send(out, "MAIL FROM: <ligechina@163.com>\n"); getresponse(in); send(out, "RCPT TO: <ligechina@163.com>\n"); getresponse(in); send(out, "DATA\n"); // DATA 表明以下为信件内容 getresponse(in); send(out, "Date: 癸丑仲夏十五日 \n"); send(out, "From: 西门吹雪 \n"); send(out, "To: 叶孤城 \n"); send(out, "Subject: 决战之前!\n"); send(out, " 这是一个由 Java 程序自动发送的邮件 \n"); send(out, "\r\n.\r\n"); // 句号独占一行表明内容结束 getresponse(in); send(out, "QUIT \n"); // 关闭传递信道 getresponse(in); out.close(); in.close(); socket.close(); // 将一条 SMTP 命令或邮件消息 msg 写到输出流 out 中 private static void send(printstream out, String msg) throws IOException { out.print(msg); System.out.print(">> " + msg); // 从输入流 in 中读取 SMTP 服务程序的答复消息 private static void getresponse(bufferedreader in) throws IOException { String msg = in.readline(); System.out.println("<< " + msg);

61 import java.io.*; import java.net.*; public class Mail { public static void main(string[] args) throws IOException { if (args.length!= 1) { System.out.println(" 用法 :Mail < 邮件服务器主机名 >"); return; // 与一个运行有 SMTP 服务程序的主机建立连接并打开输出流和输入流 Socket socket = new Socket(args[0], 25); PrintStream out = new PrintStream(socket.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 据 SMTP 协议规定格式提交邮件 getresponse(in); // 读取服务程序的欢迎信息 send(out, "HELO smtp.163.com \n"); // 打开传递信道 getresponse(in); send(out, "MAIL FROM: <ligechina@163.com>\n"); getresponse(in); send(out, "RCPT TO: <ligechina@163.com>\n"); getresponse(in); send(out, "DATA\n"); // DATA 表明以下为信件内容 getresponse(in); send(out, "Date: 癸丑仲夏十五日 \n"); send(out, "From: 西门吹雪 \n"); send(out, "To: 叶孤城 \n"); send(out, "Subject: 决战之前!\n"); send(out, " 这是一个由 Java 程序自动发送的邮件 \n"); send(out, "\r\n.\r\n"); // 句号独占一行表明内容结束 getresponse(in); send(out, "QUIT \n"); // 关闭传递信道 getresponse(in); out.close(); in.close(); socket.close(); // 将一条 SMTP 命令或邮件消息 msg 写到输出流 out 中 private static void send(printstream out, String msg) throws IOException { out.print(msg); System.out.print(">> " + msg); // 从输入流 in 中读取 SMTP 服务程序的答复消息 private static void getresponse(bufferedreader in) throws IOException { String msg = in.readline(); System.out.println("<< " + msg);

62 关于 UDP 基于 UDP 的通信 采用数据报进行通信, 是一种不可靠的点对点通信方式 ; 适合对通信性能要求高 但通信可靠性要求低的应用 ; 可支持广播和多播通信方式 ; 单播通信 将数据报从一个发送方传输给单个接收方 ; java.net 程序包为实现 UDP 单播通信主要提供了两个类 : 类 DatagramPacket 代表一个被传送的 UDP 数据包, 该类封装了被传送数据报的内容 源主机与端口号 目标主机与端口号等信息 ; 类 DatagramSocket 代表一个用于传送 UDP 数据包的 UDP socket

63 单播 (Unicast) 一对一 多播 (Multicast) 一对多 ( 范围确定 ) 广播 (Broadcast) 一对?( 范围不确定 ) TCP 可否支持多播? 广播? 区分三个概念

64 类 DatagramPacket 类 DatagramPacket 描述客户程序发送的或服务程序接收的一个 UDP 数据报 提供了多个方法用于设置或访问 UDP 数据报的状态, 例如 : // 设置数据报中的数据缓冲区 public synchronized void setdata(byte[] buf) // 设置缓冲区中的数据 偏移量与长度 public synchronized void setdata(byte[] buf, int offset, int length) // 返回缓冲区中从偏移量 offset 开始 长度为 length 的数据 public synchronized byte[] getdata()

65 创建 DatagramPacket 实例 : DatagramPacket(byte buf[], int offset, int length) DatagramPacket(byte buf[], int length) 类 DatagramPacket DatagramPacket(byte buf[], int offset, int length, InetAddress address, int port) DatagramPacket(byte buf[], int offset, int length, SocketAddress address) throws SocketException DatagramPacket(byte buf[], int length, InetAddress address, int port) DatagramPacket(byte buf[], int length, SocketAddress address) throws SocketException buff 指定一个字节数组作为缓冲区, 用于存放所接收的 UDP 数据报 ; offset 指定缓冲区中的偏移量 ; length 表示以字节计算的数据报长度, 该参数不可大于缓冲区的大小 ; address 和 port 指定数据报传送的目标地址与端口号, 可调用该实例的 setaddress() 和 setport() 方法重新设定目标地址和端口号

66 类 DatagramSocket 类 DatagramSocket 负责管理 UDP socket 的绑定和连接状态 ; 执行发送和接收 UDP 数据报的操作 ; 当一个 UDP socket 连接到一个远程主机时, 该 socket 只能向该地址发送 UDP 数据报或从该地址接收 UDP 数据报

67 类 DatagramSocket 类 DatagramSocket 封装了一个 UDP socket 绑定的本地主机地址与端口号, 及其连接的远程主机地址与端口号 ; 支持通过该 UDP socket 发送和接收 UDP 数据报 在创建一个 DatagramSocket 实例 : DatagramSocket() throws SocketException DatagramSocket(SocketAddress bindaddr) throws SocketException DatagramSocket(int port) throws SocketException DatagramSocket(int port, InetAddress addr) throws SocketException bindaddr 指定实例绑定的本地 socket 地址 ; address 和 port 指定实例绑定的本地主机地址和端口号 ;

68 服务器端功能 时间广播服务程序 首先, 创建一个 UDP socket, 用于接收客户程序发送来的报时请求, 这种请求是一个 DatagramPacket 实例 ; 然后, 从该请求中可提取客户程序位于的远程主机地址与端口号 ; 而后, 将服务器的当前时间封装为一个 UDP 数据报, 仍用原来的 UDP socket 送回给客户程序 ; 客户端功能 首先, 创建一个 UDP socket, 并用于向服务程序发送一个作为报时请求的 UDP 数据报 ; 然后, 使用同一 UDP socket 接收服务程序送回的 UDP 数据报, 从中提取服务器送回的时间信息并显示出来

69 import java.io.*; import java.net.*; public class ClockServer extends Thread { final static int BUFFER_SIZE = 1024; // 接收请求的缓冲区大小 public static void main(string[] args) { if (args.length!= 1) { System.out.println(" 用法 :ClockServer < 端口号 >"); return; try { DatagramSocket socket = new DatagramSocket(Integer.parseInt(args[0])); System.out.println(" 时钟服务器正在监听请求..."); while (true) { // 接收一个客户请求 byte[ ] buffer = new byte[buffer_size]; DatagramPacket request = new DatagramPacket(buffer, BUFFER_SIZE); socket.receive(request); // 准备回复的消息 String message = new java.util.date().tostring(); // 将答复送回位于请求来源地址与端口的客户程序 InetAddress address = request.getaddress(); int port = request.getport(); DatagramPacket response = new DatagramPacket(message.getBytes(), message.length(), address, port); socket.send(response); System.out.println(" 响应 " + address + ", 端口 " + port); catch (IOException exc) { exc.printstacktrace();

70 import java.io.*; import java.net.*; public class ClockClient { public static void main(string[] args) throws IOException { if (args.length!= 2) { System.out.println(" 用法 :ClockClient < 主机名 > < 端口号 >"); return; DatagramSocket socket = new DatagramSocket(); // 发送请求 byte[] buffer = new byte[1024]; InetAddress address = InetAddress.getByName(args[0]); DatagramPacket request = new DatagramPacket(buffer, buffer.length, address, Integer.parseInt(args[1])); socket.send(request); // 获取答复并显示 DatagramPacket response = new DatagramPacket(buffer, buffer.length); socket.receive(response); String data = new String(response.getData()); System.out.println(" 服务器返回时间 :" + data); socket.close();

71 多播通信 基于 UDP 的通信 一个 UDP 数据报的发送目的地取决于存放在 DatagramPacket 实例中的 IP 地址和端口号 ; TCP/IP 协议定义了三类 IP 地址 : 单播地址 广播地址和多播地址 ; 广播和多播仅可用于 UDP 通信, 适用于需将同一数据同时发送给多个接收者的应用背景 ; 例如网上会议 分组邮件 新闻传播 网络管理 实时游戏等应用

72 类 MulticastSocket 类 MulticastSocket 是类 DatagramSocket 的派生类, 是一个向多点传送 UDP 数据报的 UDPsocket 的抽象 构造方法 : MulticastSocket() throws IOException MulticastSocket(int port) throws IOException MulticastSocket(SocketAddress bindaddr) throws IOException port 指定新 socket 绑定的本地主机端口号 ; bindaddr 指定新 socket 绑定的本地 socket 地址 ( 其中含有 IP 地址和端口号 )

73 要实现的功能 多播方式的时间广播程序 在一个子网中只需启动一份时间广播程序进程, 多个客户程序进程就可同时接收这些广播消息 多播组通过一个用于多播的 IP 地址指定, 服务程序向该 IP 地址发送 UDP 数据报, 已加入该 IP 地址指定的多播组的所有客户程序均可接收这些 UDP 数据报

74 IP 多播地址 多播地址 在 IPv4 中它是一个 D 类 IP 地址, 范围从 到 ; 且被划分为局部链接多播地址 预留多播地址和管理权限多播地址三类 局部链接多播地址范围在 ~ , 这是为路由协议和其它用途保留的地址, 路由器并不转发属于此范围的 IP 包 ; 预留多播地址为 ~ , 可用于全球范围 ( 如 Internet) 或网络协议 ; 管理权限多播地址为 ~ , 可供组织内部使用, 类似于私有 IP 地址, 不能用于 Internet, 可限制多播范围 ;

75 import java.io.*; import java.net.*; public class ClockBroadcaster extends Thread { public static void main(string[] args) throws IOException { if (args.length!= 2) { System.out.println(" 用法 :ClockBroadcaster < 多播组 IP 地址 > < 端口号 >"); return; System.out.println(" 时钟电台正在广播..."); InetAddress address = InetAddress.getByName(args[0]); int port = Integer.parseInt(args[1]); DatagramSocket socket = new DatagramSocket(); while (true) { String message = new java.util.date().tostring(); DatagramPacket packet = new DatagramPacket(message.getBytes(), message.length(), address, port); socket.send(packet); System.out.println(message + " 广播范围 :" + address); try { sleep(10 * 1000); catch (InterruptedException exc) {

76 import java.io.*; import java.net.*; public class ClockReceiver { public static void main(string[] args) throws IOException { if (args.length!= 2) { System.out.println(" 用法 :ClockReceiver < 多播组 IP 地址 > < 端口号 >"); return; InetAddress address = InetAddress.getByName(args[0]); MulticastSocket socket = new MulticastSocket(Integer.parseInt(args[1])); socket.joingroup(address); byte[] buffer = new byte[1024]; DatagramPacket packet = new DatagramPacket(buffer, buffer.length); for (int count = 0; count < 10; count++) { socket.receive(packet); String message = new String(packet.getData()); System.out.println(" 最新服务器时间 :" + message); socket.leavegroup(address); socket.close();

77 好好想想, 有没有问题? 谢谢!

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj Message Transition 5-1 5-2 DataInputStream Class 5-3 DataOutputStream Class 5-4 PrintStream Class 5-5 (Message Transition) (Exercises) Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP # iptables 默认安全规则脚本 一 #nat 路由器 ( 一 ) 允许路由 # iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT ( 二 ) DNAT 与端口转发 1 启用 DNAT 转发 # iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 dprot 422 -j DNAT to-destination

More information

chp12.ppt

chp12.ppt Java 软件设计基础 Java 网络编程 网络编程基础 TCP/IP 协议集 网络进程之间通信必须要遵循预定的规则, 这些规则叫做网络进程通信协议 TCP/IP 协议是一组在 Internet 上的不同计算机之间进行通信的协议的总称, 由应用层的 HTTP FTP SMTP 和传输层的 TCP UDP 以及网络层的 IP 等一系列协议组成 HTTP: 超文本传输协议 FTP: 文件传输协议 SMTP:

More information

<4D6963726F736F667420506F776572506F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA4544350A1A24950D0ADD2E9BACD4950B5D8D6B72E707074>

<4D6963726F736F667420506F776572506F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA4544350A1A24950D0ADD2E9BACD4950B5D8D6B72E707074> 项 目 一 : 初 识 计 算 机 网 络 任 务 三 熟 悉 TCP/IP 协 议 和 IP 地 址 一. 学 习 要 求 : 学 习 要 求 及 难 点 1. 了 解 IP 协 议 TCP 协 议 和 UDP 协 议 2. 熟 悉 IP 地 址 的 划 分 和 分 类 3. 了 解 IPV6 的 地 址 结 构 二. 难 点 : 1. IP 地 址 三. 学 时 : 1. 理 论 教 学 :6

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

Microsoft Word - 投影片ch22

Microsoft Word - 投影片ch22 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第二十二章網路程式設計 本章學習目標認識網路學習如何取得文件的內容資訊學習如何建立 socket 連線學習如何建立 TCP 伺服程式與客戶程式 網路程式設計 22-2 22.1 網址與 InetAddress 類別的使用 IP 位址是以 4 個 8 bits 的數值, 以 10 進位來表示, 用來區分網路上的每一台電腦

More information

while ((ch = fr.read())!= -1) { System.out.print((char) ch); fr.close(); 例 3: 用 BufferedReader 读 TXT 文件 public class FileReaderDemo3 { public static v

while ((ch = fr.read())!= -1) { System.out.print((char) ch); fr.close(); 例 3: 用 BufferedReader 读 TXT 文件 public class FileReaderDemo3 { public static v 第九章 Java I/O 流操作 实验目的 (1) 掌握文本文件的读写方法 (2) 掌握 InputStream OutputStream 的使用方法 (3) 熟悉 FileReader,BufferedReader,InputStreamReader 和 FileWriter, BufferedWriter, PrintWriter 的使用方法 ; 理解使用过滤流实现数据项的读写 :DataOutputStream,

More information

Microsoft PowerPoint - CH06.ppt [相容模式]

Microsoft PowerPoint - CH06.ppt [相容模式] 第六章伺服器 課前指引本章介紹如何以 Java 語言設計出伺服器應用程式, 學習利用 ServerSoc ket 類別設計 TCP 伺服器, 並取得輸出入資料流後傳遞資料到用戶端 第一部份除介紹 TCP 伺服器外, 亦以 偵測本機被占用的埠號 報時伺服器 與 回音伺服器 等實作範例, 讓讀者能更瞭解伺服器程式設計的方法 UDP 是本章的第二項重點, 學習如何送出 UDP 封包, 並實際設計可接收 UDP

More information

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

计算机网络实验说明

计算机网络实验说明 计算机网络实验说明 龚旭东 电三楼 420 lzgxd@mailustceducn 2011 年 11 月 1 日 龚旭东 (TA) 计算机网络实验说明 2011 年 11 月 1 日 1 / 20 Outline 1 实验系统介绍 实验环境实验流程 2 实验内容编程实验交互实验观察实验 3 一些控制台命令 4 实验报告说明 龚旭东 (TA) 计算机网络实验说明 2011 年 11 月 1 日 2

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 1.2.4 计 算 机 网 络 在

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 1.2.4 计 算 机 网 络 在 计 算 机 网 络 ( 第 4 版 ) 课 件 第 1 章 计 算 机 网 络 概 述 郭 庆 北 Ise_guoqb@ujn.edu.cn 2009-02-25 第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特

More information

计算机网络编程

计算机网络编程 计算机网络编程 第 10 章发现服务器开启的 TCP 端口 信息工程学院方徽星 fanghuixing@hotmail.com 大纲 设计目的 相关知识 例题分析 1. 设计目的 网络服务常以客户机 / 服务器模式工作 服务器在某些特定端口上提供网络服务, 等待客户机发出的服务请求 通过发现服务器开启的 TCP 端口, 了解传输层的基本功能与协议类型 掌握网络服务 端口的概念与相互关系 2. 相关知识

More information

Microsoft PowerPoint - CH05.ppt [相容模式]

Microsoft PowerPoint - CH05.ppt [相容模式] 第五章 Java 網路套件 課前指引本章初期介紹網路相關的 Java 類別, 學習如何得到主機的網路位址與網路通道等方法, 再輔以範例程式碼加強學習效果 接著由網路通道物件取得輸入與輸出資料流, 學習如何進行與遠端主機的資料傳輸, 並練習傳送與接收資料的方法 章節最後介紹如何使用網址類別 URL 並實際連線至網頁主機, 取得主機傳來的資料 章節大綱 5-1 位址類別 5-4 URL 類別 5-2 SocketAddress

More information

Microsoft Word - Broker.doc

Microsoft Word - Broker.doc Broker 模式 采用 broker 模式对分布式计算进行简单模拟 系统在一个进程内模拟分布式环境, 因此不涉及网络编程和进程间通信,Broker 通过本地函数调用的方式实现 request 和 response 的转发 采用 broker 模式对分布式计算进行简单的模拟, 要求如下 : 设计四个 server, 一个 server 接收两个整数, 求和并返回结果, 一个 server 接收两个整数,

More information

untitled

untitled 4.1AOP AOP Aspect-oriented programming AOP 來說 AOP 令 理 Cross-cutting concerns Aspect Weave 理 Spring AOP 來 AOP 念 4.1.1 理 AOP AOP 見 例 來 例 錄 Logging 錄 便 來 例 行 留 錄 import java.util.logging.*; public class HelloSpeaker

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

计 算 机 系 统 应 用 http://www.c-s-a.org.cn 2016 年 第 25 卷 第 4 期 线 程 的 复 用 [2,3]. 通 常 情 况 下, 服 务 器 端 程 序 在 启 动 时 创 建 若 干 数 量 的 线 程 对 象 并 缓 存 起 来, 此 时 它 们 处 于

计 算 机 系 统 应 用 http://www.c-s-a.org.cn 2016 年 第 25 卷 第 4 期 线 程 的 复 用 [2,3]. 通 常 情 况 下, 服 务 器 端 程 序 在 启 动 时 创 建 若 干 数 量 的 线 程 对 象 并 缓 存 起 来, 此 时 它 们 处 于 1 线 程 池 技 术 在 考 试 系 统 中 的 应 用 葛 萌 1, 于 博 2, 欧 阳 宏 基 ( 咸 阳 师 范 学 院 信 息 工 程 学 院, 咸 阳 712000) ( 河 南 建 筑 职 业 技 术 学 院 信 息 工 程 系, 郑 州 450064) 1 摘 要 : 当 较 大 规 模 客 户 端 并 发 请 求 服 务 器 端 应 用 程 序 时, 传 统 的 为 每 个 请

More information

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC 8 TCP/IP TCP/IP TCP OSI 8.1 OSI 4 end to end A B FTP OSI Connection Management handshake Flow Control Error Detection IP Response to User s Request TCP/IP TCP 181 UDP 8.2 TCP/IP OSI OSI 3 OSI 3 8.1 TCP/IP

More information

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP TCP/IP : TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP 1. ASCII EBCDIC Extended Binary-Coded Decimal Interchange Code 2. / (1) (2) Single System Image SSI) (3) I/O (4) 3.OSI OSI Open System Interconnection

More information

路由器基本配置

路由器基本配置 路由器基本配置 本章内容 路由器的基本操作 实验练习 常用的路由器配置方法 TFTP Console MODEM AUX telnet web 任何 Interface AUX 备份接口, 一般用于路由器的管理备份接口 路由器的操作模式 : 配置模式 1. 线路配置模式 Router(config-line)# 配置路由器的线路参数 2. 路由协议配置模式 Router(config-router)#

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

上海市教育考试院关于印发新修订的

上海市教育考试院关于印发新修订的 沪 教 考 院 社 考 2012 7 号 上 海 市 教 育 考 试 院 关 于 印 发 上 海 市 高 等 学 校 计 算 机 等 级 考 试 大 纲 (2012 年 修 订 ) 的 通 知 各 有 关 高 校 : 为 进 一 步 加 强 本 市 高 校 计 算 机 基 础 教 学 工 作, 推 进 学 校 更 加 科 学 合 理 地 设 置 计 算 机 基 础 课 程 及 安 排 教 学 内 容,

More information

9 Internet 10 Internet

9 Internet 10 Internet 1 2 3 4 5 6 Internet 7 8 9 Internet 10 Internet 11 12 1 1.1 1.2 1.3 1.4 1.5 1.6 1.1 1.1.1 20 50 20 60 ARPANET ARPANET Internet 20 70 ISO International Organization for Standardization TCP/IP 20 90 Internet

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

经华名家讲堂

经华名家讲堂 5.1 5.1.1 5.1.2 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.3 5.3.1 5.3.2 5.3.3 / 5.3.4 / 5.3.5 / 5.4 Internet 5.4.1 Internet 5.4.2 Intranet 1. 2. 1 31 5 5.1 5.1.1 Internet 1 Host 20 60 IBM 2000 2 20 60 20 60

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

工程师培训

工程师培训 .1 TCP/IP TCP/IP 1 .2.2.1 Host 1960 S 1970 S Host Low Speed Lines 1970 S 1980 S pc Server Local Interneting 1980 S 1990 S Branch. pc Branch. WAN Branch. pc pc IBM SNA IBM X.25 2 .2.2 OSI OSI Application

More information

OOP with Java 通知 Project 6: 6 月 6 日晚 9 点

OOP with Java 通知 Project 6: 6 月 6 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 6: 6 月 6 日晚 9 点 复习 异常处理 语法 抛出异常 : throw 处理异常 : try, catch 异常对象 : Exception 类的子类 从方法中抛出异常 方法的异常说明 :throws 中断当前方法的执行, 返回抛出的异常对象, 在该方法的调用路径上寻找合适的

More information

C3_ppt.PDF

C3_ppt.PDF C03-101 1 , 2 (Packet-filtering Firewall) (stateful Inspection Firewall) (Proxy) (Circuit Level gateway) (application-level gateway) (Hybrid Firewall) 2 IP TCP 10.0.0.x TCP Any High Any 80 80 10.0.0.x

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

ebook67-1

ebook67-1 1 1.1 T C P / I P T C P / I P 60 9 ( I n t e r n e t ) WA N 100 T C P / I P T C P / I P [ Lynch 1993] 1.2 Telnet FTP e-mail T C P / I P TCP UDP T C P / I P 1-1 1) 1-1 TCP/IP 2) T C P / I P I I C M P I

More information

ch09.PDF

ch09.PDF 9-1 / (TCP/IP) TCP/IP TCP/IP ( ) ICMP ARP RARP 9.1 TCP/IP 9.1.1 TCP/IP OSI TCP/IP (DARPA) DARPA TCP/IP UNIX Berkeley Software DistributionTCP/IP TCP/IP TCP/IP TCP/IP TCP/IP TCP/IP OSI - TCP/IP ( ) ( )

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

目 录(目录名)

目  录(目录名) 目录 目录...1-1 1.1 域名解析配置命令... 1-1 1.1.1 display dns domain... 1-1 1.1.2 display dns dynamic-host... 1-1 1.1.3 display dns server... 1-2 1.1.4 display ip host... 1-3 1.1.5 dns domain... 1-4 1.1.6 dns resolve...

More information

使用MapReduce读取XML文件

使用MapReduce读取XML文件 使用 MapReduce 读取 XML 文件 XML( 可扩展标记语言, 英语 :extensible Markup Language, 简称 : XML) 是一种标记语言, 也是行业标准数据交换交换格式, 它很适合在系统之间进行数据存储和交换 ( 话说 Hadoop H ive 等的配置文件就是 XML 格式的 ) 本文将介绍如何使用 MapReduce 来读取 XML 文件 但是 Had oop

More information

1. 二 進 制 數 值 ( 1 10 10 01 ) 2 轉 換 為 十 六 進 制 時, 其 值 為 何? (A) ( 69 ) 16 (B) ( 39 ) 16 (C) ( 7 A ) 16 (D) ( 8 A ) 16 2. 在 電 腦 術 語 中 常 用 的 UPS, 其 主 要 功 能

1. 二 進 制 數 值 ( 1 10 10 01 ) 2 轉 換 為 十 六 進 制 時, 其 值 為 何? (A) ( 69 ) 16 (B) ( 39 ) 16 (C) ( 7 A ) 16 (D) ( 8 A ) 16 2. 在 電 腦 術 語 中 常 用 的 UPS, 其 主 要 功 能 注 意 : 考 試 開 始 鈴 ( 鐘 ) 響 前, 不 可 以 翻 閱 試 題 本 民 國 104 年 大 專 程 度 義 務 役 預 備 軍 官 預 備 士 官 考 試 試 題 計 算 機 概 論 注 意 事 項 1. 請 核 對 考 試 科 目 是 否 正 確 2. 請 檢 查 答 案 卡 座 位 及 准 考 證 三 者 之 號 碼 是 否 完 全 相 同, 如 有 不 符, 請 監 試 人

More information

import java.util.*; 3.1.3 在 Java 中 的 简 单 的 TCP 服 务 器 在 Java 中, 一 个 服 务 器 端 的 被 动 的 套 接 字 由 java.net.serversocket 表 示. 一 个 TCP 服 务 器 构 造 一 个 java.net.s

import java.util.*; 3.1.3 在 Java 中 的 简 单 的 TCP 服 务 器 在 Java 中, 一 个 服 务 器 端 的 被 动 的 套 接 字 由 java.net.serversocket 表 示. 一 个 TCP 服 务 器 构 造 一 个 java.net.s 这 一 章 讨 论 了 TCP/IP 协 议 的 基 础 和 它 在 阻 塞 模 式 中 Java Socket 和 ServerSocket 对 象 的 实 现. 这 一 章 假 设 对 TCP/IP 的 基 本 概 念 和 Java 套 接 字 有 一 个 认 识, 虽 然 提 供 了 一 个 简 要 的 回 顾. TCP Channel I/O 和 非 阻 塞 模 式 在 第 5 章 讨 论.

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

温州市政府分散采购

温州市政府分散采购 温 州 市 政 府 分 散 采 购 招 标 文 件 招 标 编 号 :F - G B 2 0 1 6 0 3 1 4 0 0 4 7 招 标 项 目 : 温 州 市 人 民 政 府 办 公 室 政 务 云 平 台 ( 重 ) 招 标 方 式 : 公 开 招 标 招 标 人 : 温 州 市 人 民 政 府 办 公 室 招 标 代 理 : 二 〇 一 六 年 三 月 目 录 投 标 保 证 金 办 理

More information

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2 (2005-01-26) (2005-01-26) (2005-02-27) PIC_SERVER (9) VB TCP/UDP Visual Basic Microsoft Winsock Control (MSWINSCK.OCX) UDP TCP Client Server Visual Basic UDP/TCP PIC_SERVER UDP/TCP 1. Microsoft Winsock

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

OOP with Java 通知 Project 6: 5 月 30 日晚 9 点

OOP with Java 通知 Project 6: 5 月 30 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 6: 5 月 30 日晚 9 点 复习 异常处理 语法 抛出异常 : throw 处理异常 : try, catch 异常对象 : Exception 类的子类 从方法中抛出异常 方法的异常说明 :throws 中断当前方法的执行, 返回抛出的异常对象, 在该方法的调用路径上寻找合适的

More information

untitled

untitled 1 行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類 Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行 Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart

More information

Chapter 5- 运输层 (1)-2017

Chapter 5- 运输层 (1)-2017 计算机网络 第五章运输层 (1) 陈旺虎 chenwh@nwnu.edu.cn 第 5 章运输层 5.1 运输层协议概述 5.2 运输层协议概述 5.3 传输控制协议 TCP 概述 5.4 可靠传输的工作原理 4.5 TCP 报文段的首部格式 5.6 TCP 可靠传输的实现 5.7 TCP 的流量控制 5.8 TCP 的拥塞控制 5.9 TCP 的连接管理 5.1 运输层协议概述 从通信和信息处理的

More information

Swing-02.pdf

Swing-02.pdf 2 J B u t t o n J T e x t F i e l d J L i s t B u t t o n T e x t F i e l d L i s t J F r a m e 21 2 2 Swing C a n v a s C o m p o n e n t J B u t t o n AWT // ToolbarFrame1.java // java.awt.button //

More information

Microsoft PowerPoint - 数据通信-ch1.ppt

Microsoft PowerPoint - 数据通信-ch1.ppt 主 要 内 容 与 基 本 要 求 主 要 内 容 数 据 通 信 与 计 算 机 网 络 计 算 机 网 络 的 发 展 过 程 分 类 以 及 主 要 性 能 指 标 ; 分 组 交 换 的 基 本 原 理 及 其 与 电 路 交 换 报 文 交 换 的 联 系 与 区 别 ; 计 算 机 网 络 的 协 议 与 体 系 结 构 第 1 章 概 述 基 本 要 求 掌 握 分 组 交 换 电 路

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

<4D6963726F736F667420576F7264202D20C9CFBAA3CAD0BCC6CBE3BBFAB5C8BCB6BFBCCAD4C8FDBCB6BFBCCAD4B4F3B8D95FBDA8D2E9B8E55F5F303632352E646F63>

<4D6963726F736F667420576F7264202D20C9CFBAA3CAD0BCC6CBE3BBFAB5C8BCB6BFBCCAD4C8FDBCB6BFBCCAD4B4F3B8D95FBDA8D2E9B8E55F5F303632352E646F63> 上 海 市 高 等 学 校 计 算 机 等 级 考 试 ( 三 级 ) 考 试 大 纲 -- 建 议 稿 -- 2007-6-25 25 目 录 上 海 市 高 等 学 校 计 算 机 等 级 考 试 三 级 总 体 说 明 -----------------1 三 级 ( 计 算 机 系 统 与 网 络 技 术 ) 考 试 大 纲 ---------------------2 三 级 ( 管 理

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

More information

interfaces which it implements): int read(bytebuffer) throws IOException; int read(bytebuffer[] buffers) throws IOException; int read(bytebuffer[] buf

interfaces which it implements): int read(bytebuffer) throws IOException; int read(bytebuffer[] buffers) throws IOException; int read(bytebuffer[] buf 这章讨论了 JDK 1.4 UDP 数据报可伸缩 I/O 的使用. 10.1 UDP 的通道 在 UDP 之上的可伸缩 I/O 使用我们在之前 4.2.1 节所遇到的 DatagramChannel 类执行. 10.1.1 导入语句下面的 Java 导入语句假设在这章的示例中至始至终存在. import java.io.*; import java.net.*; import java.nio.*;

More information

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语

More information

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之 臺 北 市 大 安 高 級 工 業 職 業 學 校 資 訊 科 一 百 零 一 學 年 度 專 題 製 作 報 告 ------ 以 Android 製 作 ------ ----- 連 線 塔 防 遊 戲 ------ Tower defense game using Internet technology 班 級 : 資 訊 三 甲 組 別 : A9 組 組 員 : 葉 冠 麟 (9906129)

More information

Data Server_new_.doc

Data Server_new_.doc 0i B/C Data Server Windows 2000 Window XP Windows XP FTP FANUC Data Server FTP liwei@beijing-fanuc 1 06-10-8 Content 1. /...3 1.1...3 1.2...3 1.3 CNC...3 2....5 2.1 STORAGE...5 2.2 FTP...6 2.3 BUFFER...7

More information

13 根 据 各 种 网 络 商 务 信 息 对 不 同 用 户 所 产 生 的 使 用 效 用, 网 络 商 务 信 息 大 致 可 分 为 四 级, 其 中 占 比 重 最 大 的 是 ( A ) A 第 一 级 免 费 信 息 B 第 二 级 低 收 费 信 息 C 第 三 级 标 准 收 费

13 根 据 各 种 网 络 商 务 信 息 对 不 同 用 户 所 产 生 的 使 用 效 用, 网 络 商 务 信 息 大 致 可 分 为 四 级, 其 中 占 比 重 最 大 的 是 ( A ) A 第 一 级 免 费 信 息 B 第 二 级 低 收 费 信 息 C 第 三 级 标 准 收 费 助 理 电 子 商 务 考 试 真 题 试 题 第 一 部 分 : 理 论 部 分 一 单 项 选 择 题 1 ( B ) 是 信 息 系 统 的 核 心 组 成 部 分 A 逻 辑 模 型 B 数 据 库 C 概 念 模 型 D 以 上 全 部 2 ping www.163.com -t 中 参 数 t 的 作 用 是 :( A ) A 进 行 连 续 测 试 B 在 新 窗 口 中 显 示 C

More information

第3章 计算机网络体系结构

第3章  计算机网络体系结构 第 3 章 计 算 机 网 络 体 系 结 构 本 章 内 容 计 算 机 的 网 络 体 系 结 构 网 络 参 考 模 型 五 层 网 络 参 考 模 型 1 3.1 计 算 机 网 络 体 系 结 构 发 展 历 程 分 层 原 理 基 本 概 念 2 发 展 历 程 网 络 体 系 结 构 提 出 的 背 景 计 算 机 网 络 的 复 杂 性 异 质 性 不 同 的 通 信 介 质 有 线

More information

飞鱼星多WAN防火墙路由器用户手册

飞鱼星多WAN防火墙路由器用户手册 WAN VER: 20110218 Copyright 2002-2011 VOLANS WAN VR4600 VR4900 VR7200 VR7500 VR7600 1.1 1.2 IP 1.3 2.1 2.2 2.2.1 2.2.2 3.1 3.2 3.2.1 3.2.2 3.2.3 4.1 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3 4.3.1 4.3.2

More information

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 复习 创建对象 构造函数 函数重载 : 函数 = 函数名 + 参数列表 public class MyType { int i; double d; char c; void set(double x)

More information

C6_ppt.PDF

C6_ppt.PDF C01-202 1 2 - (Masquerade) (Replay) (Message Modification) (Denial of Service) - ( ) (Eavesdropping) (Traffic Analysis) 8 1 2 7 3 6 5 4 3 - TCP SYN (SYN flood) Smurf Ping of Death LAND Attack Teardrop

More information

View:Struts 提 供 了 action form 创 建 form bean, 用 于 在 controller 和 view 间 传 输 数 据 此 外,Struts 提 供 了 自 定 义 JSP 标 签 库, 辅 助 开 发 者 用 JSP 创 建 交 互 式 的 以 表 单 为 基

View:Struts 提 供 了 action form 创 建 form bean, 用 于 在 controller 和 view 间 传 输 数 据 此 外,Struts 提 供 了 自 定 义 JSP 标 签 库, 辅 助 开 发 者 用 JSP 创 建 交 互 式 的 以 表 单 为 基 一 你 对 MVC 的 理 解,MVC 有 什 么 优 缺 点? 结 合 Struts, 说 明 在 一 个 Web 应 用 如 何 去 使 用? 答 : MVC 设 计 模 式 ( 应 用 观 察 者 模 式 的 框 架 模 式 ) M: Model(Business process layer), 模 型, 操 作 数 据 的 业 务 处 理 层, 并 独 立 于 表 现 层 (Independent

More information

java2d-4.PDF

java2d-4.PDF 75 7 6 G r a d i e n t P a i n t B a s i c S t r o k e s e t P a i n t ( ) s e t S t o r k e ( ) import java.awt.*; import java.awt.geom.*; public class PaintingAndStroking extends ApplicationFrame { public

More information

NetST 2300系列防火墙产品白皮书

NetST 2300系列防火墙产品白皮书 2000 (NetST 2000 ) ... 3... 4 NetST 2000... 5 1...5 2...5 3...6 4...9 5...9 6...9 7...10 7.1...10 7.2...10 7.3...11 7.4...11 7.5...13 7.6...13 7.7 VPN...14 7.8...14 7.9...15 7.10...17 7.11 IP...17 7.12...18

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt 2004 Marty Hall 服务器响应的生成 : HTTP 状态代码 JSP, Servlet, & Struts Training Courses: http://courses.coreservlets.com Available in US, China, Taiwan, HK, and Worldwide 2 JSP and Servlet Books from Sun Press: http://www.coreservlets.com

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-055Big5 Title : Sun Certified Programmer for the Java 2 Platform.SE 5.0 Version : Demo 1 / 22 1. 11. public static void parse(string str)

More information

1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H

1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H ... 2... 4... 6... 8... 10... 12... 14... 16... 18... 20... 22... 24... 25... 26... 28 1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C)

More information

北京市工商局网络安全系统解决方案

北京市工商局网络安全系统解决方案 WebST 20021 01062988822 010 ...3...3 1.1...4 1.1.1...4 1.1.2...4 1.1.3...4 1.2...5 1.3...5 1.4...9 1.4.1...9 1.4.2...12 1.4.3...15 1.4.4...18 1.4.5...24 1.5...25 01062988822 010 1997 1 Check PointISS NokiaSymantec/Axent

More information

<4D6963726F736F667420576F7264202D20383439342D352DBED6D3F2CDF8D7E9BDA8D3EBB9DCC0EDCFEEC4BFBDCCB3CCD5FDCEC42E646F63>

<4D6963726F736F667420576F7264202D20383439342D352DBED6D3F2CDF8D7E9BDA8D3EBB9DCC0EDCFEEC4BFBDCCB3CCD5FDCEC42E646F63> 第 4 单 元 搭 建 自 己 的 Web 站 点 本 单 元 通 过 学 习 架 构 Web 服 务 器, 实 现 Web 服 务, 管 理 Web 站 点, 了 解 Web 站 点 服 务 器 的 架 构 个 人 空 间 和 虚 拟 主 机 的 概 念, 掌 握 IIS 组 件 的 安 装 Web 站 点 的 创 建 管 理 站 点 属 性 选 项 卡 的 配 置 管 理 等 知 识,Web 网

More information

FileMaker 15 ODBC 和 JDBC 指南

FileMaker 15 ODBC 和 JDBC 指南 FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc. / FileMaker WebDirect FileMaker, Inc. FileMaker

More information

<4D6963726F736F667420576F7264202D20BAF4BADEA457BDD2B1D0A7F75F4A415641B57BA6A1B2D52E646F63>

<4D6963726F736F667420576F7264202D20BAF4BADEA457BDD2B1D0A7F75F4A415641B57BA6A1B2D52E646F63> 電 腦 網 路 與 程 式 課 程 JAVA 物 件 導 向 程 式 設 計 JAVA 程 式 組 教 材 授 課 人 員 : 黃 怡 傑 目 錄 Ch1. 學 習 JAVA 的 第 一 堂 課 程 式 的 邏 輯 1.1 coding 的 習 慣 1.2 開 始 學 習 JAVA 前 的 準 備 1.3 第 一 個 JAVA 程 式 1.4 資 料 型 別 1.5 運 算 子 1.6 迴 圈 1.7

More information

90 1 2/3 2/

90 1 2/3 2/ ( ) 2004 6 90 1 2/3 2/3 00 01 02 03 01 02 02 2 2 26 + = 21.72 Internet DDN 5 + + = 2000 559.11 3 01 4 3 4 7 5 5 5 3 1 02, 03 2 4 3 1 00 00 5 01 02 03 2 ---> ---> ---> - --> ------ 6 BBS 3 01 PowerPoint

More information

SEC-220

SEC-220 Session CERT/CC 60000 50000 40000 52,658 30000 26,829 20000 10000 0 2,412 1995 1999 2000 2001 Q1, 2002 Source: http://www.cert.org/stats/ CERT/CC 3000 2500 2000 2,437 1500 1000 500 0 171 1,065 1995

More information

ebook67-9

ebook67-9 9 IP 9.1 I P 9-1 I P 9-1 d a e m o n U n i x d a e m o n d a e m o n [Perlman 1992] 10 R I P Routing Information Protocol I P 9-1 I P 30 I C M P 9. 5 r o u t e n e t s t a t route netstat UDP TCP ICMP

More information

Andrid 系统下 Java 编程详解 享数据库的管理和存取, 称为服务器, 而将其他的应用处理工作分散到网络中其他微机上去做, 构成分布式的处理系统 当前银行的柜台应用系统就是这种类型的应用的典型案例 : 银行账户的信息 ( 账号 余额等信息 ) 都在银行的数据库中, 而在柜台的客户端, 可以进

Andrid 系统下 Java 编程详解 享数据库的管理和存取, 称为服务器, 而将其他的应用处理工作分散到网络中其他微机上去做, 构成分布式的处理系统 当前银行的柜台应用系统就是这种类型的应用的典型案例 : 银行账户的信息 ( 账号 余额等信息 ) 都在银行的数据库中, 而在柜台的客户端, 可以进 第 10 章网络编程 本章介绍计算机网络基础知识, 包括 TCP/IP 协议和 IP 地址 网络掩码和端口号的原 理 ; Java 中的 InetAddress 类和 URL 类 ; 使用 ServerScket 类和 Scket 类实现 TCP/IP 的 客户端 (Client) 和服务器端 (Server) 的交互的方法 10.1 网络基础 10.1.1 知识准备 : 网络类型计算机网络按照不同的分类方式来划分,

More information

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt 2004 Marty Hall servlet 基础 JSP, Servlet, & Struts Training Courses: http://courses.coreservlets.com Available in US, China, Taiwan, HK, and Worldwide 2 JSP and Servlet Books from Sun Press: http://www.coreservlets.com

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

FileMaker 16 ODBC 和 JDBC 指南

FileMaker 16 ODBC 和 JDBC 指南 FileMaker 16 ODBC JDBC 2004-2017 FileMaker, Inc. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc. FileMaker WebDirect FileMaker Cloud FileMaker,

More information

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能 互 聯 網 技 術 在 完 成 這 章 後, 你 將 能 夠 描 述 互 聯 網 的 發 展 歷 史 描 述 萬 維 網 的 發 展 歷 史 了 解 連 接 互 聯 網 的 基 本 概 念 能 夠 連 接 到 互 聯 網 知 道 互 聯 網 如 何 運 作 互 聯 網 是 全 球 網 絡 的 集 合 互 聯 網 (Internet) 是 ㆒ 個 集 合 全 球 許 多 網 絡 ㆒ 起 的 大 型 網

More information

目 录(目录名)

目  录(目录名) 目录 1 域名解析配置命令... 1-1 1.1 域名解析配置命令...1-1 1.1.1 display dns domain... 1-1 1.1.2 display dns dynamic-host... 1-2 1.1.3 display dns proxy table... 1-2 1.1.4 display dns server... 1-3 1.1.5 display ip host...

More information

Servlet

Servlet Servlet Allen Long Email: allen@huihoo.com http://www.huihoo.com 2004-04 Huihoo - Enterprise Open Source http://www.huihoo.com 1 Huihoo - Enterprise Open Source http://www.huihoo.com 2 GET POST Huihoo

More information

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 本章学习目标 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 配置视图解析器 @RequestMapping 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 和 Struts2 都属于表现层的框架, 它是 Spring 框架的一部分, 我们可 以从 Spring 的整体结构中看得出来 :

More information

计 算 机 网 络 基 础 任 务 教 程 () 组 成 计 算 机 网 络 的 每 台 计 算 机 都 是 独 立 的 即 计 算 机 之 间 没 有 明 显 的 主 从 关 系, 每 台 计 算 机 可 以 连 网 工 作, 也 可 以 不 连 网 工 作 (2) 建 立 计 算 机 网 络 的

计 算 机 网 络 基 础 任 务 教 程 () 组 成 计 算 机 网 络 的 每 台 计 算 机 都 是 独 立 的 即 计 算 机 之 间 没 有 明 显 的 主 从 关 系, 每 台 计 算 机 可 以 连 网 工 作, 也 可 以 不 连 网 工 作 (2) 建 立 计 算 机 网 络 的 计 算 机 网 络 初 探 描 述 随 着 计 算 机 网 络 技 术 的 发 展, 给 我 们 的 工 作 和 生 活 带 来 了 极 大 的 便 利, 本 将 学 习 计 算 机 网 络 的 相 关 知 识, 并 能 利 用 所 学 网 络 知 识 对 实 际 问 题 进 行 分 析 探 讨 ; 感 受 网 络 的 神 奇 作 用, 激 发 对 网 络 技 术 的 求 知 欲 ; 认 识 到 信

More information

Chap6.ppt

Chap6.ppt Computer Networks v4 cs.sjtu 12/21/12 6 Internet ftp://ftp.cs.sjtu.edu.cn/ybzhang 61 / 110 Computer Networks v4 cs.sjtu 12/21/12 ftp://ftp.cs.sjtu.edu.cn/ybzhang 62 / 110 Computer Networks v4 cs.sjtu 12/21/12

More information

Microsoft Word - 100118002.htm

Microsoft Word - 100118002.htm 100 年 度 11800 電 腦 軟 體 應 用 乙 級 技 術 士 技 能 檢 定 學 科 測 試 試 題 本 試 卷 有 選 擇 題 80 題, 每 題 1.25 分, 皆 為 單 選 選 擇 題, 測 試 時 間 為 100 分 鐘, 請 在 答 案 卡 上 作 答, 答 錯 不 倒 扣 ; 未 作 答 者, 不 予 計 分 准 考 證 號 碼 : 姓 名 : 選 擇 題 : 1. (3)

More information

Hive:用Java代码通过JDBC连接Hiveserver

Hive:用Java代码通过JDBC连接Hiveserver Hive: 用 Java 代码通过 JDBC 连接 Hiveserver 我们可以通过 CLI Client Web UI 等 Hive 提供的用户接口来和 Hive 通信, 但这三种方式最常用的是 CLI;Client 是 Hive 的客户端, 用户连接至 Hive Server 在启动 Client 模式的时候, 需要指出 Hive Server 所在节点, 并且在该节点启动 Hive Server

More information

穨CAS1042中文手冊.doc

穨CAS1042中文手冊.doc CAS1042 4 port 10/100M Switch Internet BroadBand Router ...1...2...3 5...3 1...3 2 ADSL MODEM CABLE MODEM...4...5 4 TCP/IP...6 Windows 95 / 98 / ME/XP...6 WINDOWS 2000...8 WINDOWS NT 4.0...8...9 ADSL (ADSL

More information

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难 第 1 章 Java 概 述 Java 的 诞 生 Java 的 特 点 Java 开 发 环 境 安 装 与 配 置 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 语 言 是 当 今 计 算 机 软 件 行 业 中 最 热 门 的 网 络 编 程 语 言, 以 Java 为 核 心 的 芯 片 技 术 编 译 技 术 数 据 库 连 接 技 术, 以 及 基 于 企 业 级

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information