1、Java网络编程 绪论,Instructor : Teaching Assistants: ?,Java网络编程 - Fall 2007 绪论 - 2,主要内容,11 什么是网络编程 12 网络编程的作用 13 Java网络编程范例,Java网络编程 - Fall 2007 绪论 - 3,主要内容,11 什么是网络编程 12 网络编程的作用 13 Java网络编程范例,介绍网络编程当中的一些基本概念。,Java网络编程 - Fall 2007 绪论 - 4,主要内容,11 什么是网络编程 12 网络编程的作用 13 Java网络编程范例,介绍网络编程的一些常见应用场合。,Java网络编程 -
2、Fall 2007 绪论 - 5,主要内容,11 什么是网络编程 12 网络编程的作用 13 Java网络编程范例,介绍一个采用Java语言进行网络编程 的简单示例,使大家对Java网络编程 的过程有一个基本的了解。,Java网络编程 - Fall 2007 绪论 - 6,主要内容,11 什么是网络编程 12 网络编程的作用 13 Java网络编程范例,Lets go to .,Java网络编程 - Fall 2007 绪论 - 7,对于网络编程的几种认识,低级编程读/写套接字、转换网络协议、加密/解密数据、 分布式应用程序的编写 Internet/Intranet编程,如Web编程,Java
3、网络编程 - Fall 2007 绪论 - 8,对于网络编程的几种认识,低级编程读/写套接字、转换网络协议、加密/解密数据、,A socket is one endpoint of a two-way communication (双向通信)link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent.,Java网络编程
4、- Fall 2007 绪论 - 9,对于网络编程的几种认识,低级编程读/写套接字、转换网络协议、加密/解密数据、,In computing, a protocol is a convention or standard that controls or enables the connection,communication, and data transfer between two computing endpoints.,Java网络编程 - Fall 2007 绪论 - 10,对于网络编程的几种认识,低级编程读/写套接字、转换网络协议、加密/解密数据、,In its simplest
5、 form, a protocol can be defined as the rules governing the syntax, semantics, and synchronization of communication.,Java网络编程 - Fall 2007 绪论 - 11,对于网络编程的几种认识,低级编程读/写套接字、转换网络协议、加密/解密数据、,Protocols may be implemented by hardware, software, or a combination of the two. At the lowest level, a protocol de
6、fines the behavior of a hardware connection.,Java网络编程 - Fall 2007 绪论 - 12,对于网络编程的几种认识,分布式应用程序的编写,Distributed computing refers to the means by which a single computer program runs in more than one computerat the same time. In particular, the different elements and objects of a program are being run o
7、r processed using different computer processors.,Java网络编程 - Fall 2007 绪论 - 13,对于网络编程的几种认识,分布式应用程序的编写,Distributed programming typically falls into one of several basic architectures or categories: client-server, 3-tier architecture, n-tier architecture, tight coupling (clustered) or Peer-to-peer.,Jav
8、a网络编程 - Fall 2007 绪论 - 14,对于网络编程的几种认识,Internet/Intranet编程,An intranet is a private computer network that uses Internet protocols, network connectivity to securely sharepart of an organizations informationor operations with its employees. Briefly, an intranet can be understood as “a private version o
9、f the Internet“.,Java网络编程 - Fall 2007 绪论 - 15,对于网络编程的一种定义,网络编程完成下列任务的一部分或者是全部: (1)在网络上发布数据 (2)通过网络提供服务 (3)在网络上接收数据 (4)通过网络调用服务,Java网络编程 - Fall 2007 绪论 - 16,主要内容,11 什么是网络编程 12 网络编程的作用 13 Java网络编程范例,Lets go to .,Java网络编程 - Fall 2007 绪论 - 17,网络编程的作用,获取数据 发送数据 对等交互 服务器 搜索Web 电子商务 无所不在的计算 交互式电视,Java网络编程
10、- Fall 2007 绪论 - 18,网络编程的作用,获取数据 发送数据 对等交互 服务器 搜索Web 电子商务 无所不在的计算 交互式电视,从最基本的层次 上讲,网络客户端 肯定要能够从服务 器获得数据并将其 用某种形式展现给 用户。,Java网络编程 - Fall 2007 绪论 - 19,网络编程的作用,获取数据 发送数据 对等交互 服务器 搜索Web 电子商务 无所不在的计算 交互式电视,浏览 网页,股票分 析软件,音乐 播放器,Java网络编程 - Fall 2007 绪论 - 20,网络编程的作用,获取数据 发送数据 对等交互 服务器 搜索Web 电子商务 无所不在的计算 交互式
11、电视,网络程序也必须能够 向服务器发送数据,如: 在服务器端保存数据; 大规模并行计算等,Java网络编程 - Fall 2007 绪论 - 21,网络编程的作用,获取数据 发送数据 对等交互 服务器 搜索Web 电子商务 无所不在的计算 交互式电视,电子 邮件,SETIHOME,Java网络编程 - Fall 2007 绪论 - 22,网络编程的作用,获取数据 发送数据 对等交互 服务器 搜索Web 电子商务 无所不在的计算 交互式电视,peer-to-peer(P2P) is a type of networkin which each workstationhas equivalent
12、capabilitiesand responsibilities. This differs from client/server architectures where some computersare dedicated to serving the others.,Java网络编程 - Fall 2007 绪论 - 23,网络编程的作用,获取数据 发送数据 对等交互 服务器 搜索Web 电子商务 无所不在的计算 交互式电视,文件共享 (BT),即时消息 (QQ),Java网络编程 - Fall 2007 绪论 - 24,网络编程的作用,获取数据 发送数据 对等交互 服务器 搜索Web
13、电子商务 无所不在的计算 交互式电视,Web应用服务器 (Tomcat),Java网络编程 - Fall 2007 绪论 - 25,网络编程的作用,获取数据 发送数据 对等交互 服务器 搜索Web 电子商务 无所不在的计算 交互式电视,Java网络编程 - Fall 2007 绪论 - 26,主要内容,11 什么是网络编程 12 网络编程的作用 13 Java网络编程范例,Lets go to .,Java网络编程 - Fall 2007 绪论 - 27,程序功能说明,该程序将实现以下功能: (1)主机A向主机B发送一句话:“Hello, Java network programming!”。
14、 (2)主机B接收该句话并显示出来。,Java网络编程 - Fall 2007 绪论 - 28,程序实现方式,该程序将采用以下方式实现: (1)程序采用C/S结构实现,主机A作为客户端,主机B作为服务器端。 (2)主机A与主机B之间采用TCP协议进行通信。,Java网络编程 - Fall 2007 绪论 - 29,服务器端程序(主机B),package ch1; import java.io.*; import .*; public class SimpleServer public static void main(String args) try ServerSocket ss=new S
15、erverSocket(2007);Socket s=ss.accept();Reader in=new InputStreamReader(s.getInputStream();int c; while(c=in.read()!=-1) System.out.write(c); catch (IOException e) e.printStackTrace(); ,建议:大家所写的所有 Java类都应该放置在包内。,Java网络编程 - Fall 2007 绪论 - 30,服务器端程序(主机B),package ch1; import java.io.*; import .*; public
16、 class SimpleServer public static void main(String args) try ServerSocket ss=new ServerSocket(2007);Socket s=ss.accept();Reader in=new InputStreamReader(s.getInputStream();int c; while(c=in.read()!=-1) System.out.write(c); catch (IOException e) e.printStackTrace(); ,在大多数Java网络程序中 都必须引入这两个包。,Java网络编程
17、 - Fall 2007 绪论 - 31,服务器端程序(主机B),package ch1; import java.io.*; import .*; public class SimpleServer public static void main(String args) try ServerSocket ss=new ServerSocket(2007);Socket s=ss.accept();Reader in=new InputStreamReader(s.getInputStream();int c; while(c=in.read()!=-1) System.out.write(
18、c); catch (IOException e) e.printStackTrace(); ,网络套接字,Java网络编程 - Fall 2007 绪论 - 32,服务器端程序(主机B),package ch1; import java.io.*; import .*; public class SimpleServer public static void main(String args) try ServerSocket ss=new ServerSocket(2007);Socket s=ss.accept();Reader in=new InputStreamReader(s.ge
19、tInputStream();int c; while(c=in.read()!=-1) System.out.write(c); catch (IOException e) e.printStackTrace(); ,输入输出流,Java网络编程 - Fall 2007 绪论 - 33,服务器端程序(主机B),package ch1; import java.io.*; import .*; public class SimpleServer public static void main(String args) try ServerSocket ss=new ServerSocket(2
20、007);Socket s=ss.accept();Reader in=new InputStreamReader(s.getInputStream();int c; while(c=in.read()!=-1) System.out.write(c); catch (IOException e) e.printStackTrace(); ,异常处理,Java网络编程 - Fall 2007 绪论 - 34,服务器端程序(主机B),package ch1; import java.io.*; import .*; public class SimpleServer public static
21、void main(String args) try ServerSocket ss=new ServerSocket(2007);Socket s=ss.accept();Reader in=new InputStreamReader(s.getInputStream();int c; while(c=in.read()!=-1) System.out.write(c); catch (IOException e) e.printStackTrace(); ,如果想同时服务多个 客户端,可考虑用线程。,Java网络编程 - Fall 2007 绪论 - 35,客户端程序(主机A),packa
22、ge ch1; import .*; import java.io.*; public class SimpleClient public static void main(String args) try Socket s=new Socket(“localhost“,2007);Writer out=new OutputStreamWriter(s.getOutputStream();out.write(“Hello,Java network programming!n“);out.close(); catch (UnknownHostException e) e.printStackTr
23、ace(); catch (IOException e) e.printStackTrace(); ,客户端所涉及到类与 服务器端基本类似。,Java网络编程 - Fall 2007 绪论 - 36,运行程序,运行步骤与运行结果: (1)开发工具采用Eclipse。 (2)应先运行服务器端程序再运行客户端程序。 (3)运行结束后,服务器端程序会打印出“Hello, Java network programming!” 。,Java网络编程 - Fall 2007 绪论 - 37,程序所涉及的Java知识,从程序中可以看出Java网络程序将涉及到以下Java知识点: (1)网络套接 (2)I/O流 (3)异常处理 (4)线程 这些知识点都是本课程的重点,Java网络编程 - Fall 2007 绪论 - 38,本课程还将涉及的内容,本课程还将涉及到以下内容: (1)高级网络类 (2)应用实例 (3)分布式编程,Java网络编程 - Fall 2007 绪论 - 39,下一章: 网络基础,THE END,