第7章 Java网络编程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第7章 Java网络编程.ppt》由会员分享,可在线阅读,更多相关《第7章 Java网络编程.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章 Java网络编程重点内容:OSI和TCP/IP网络模型 套接字的概念 UDP协议下网络编程方法 TCP协议下网络编程方法 HTTP协议下网络编程方法1 网络初步OSI参考模型 开放系统互联OSI(Open System Interconnection)参考模型是在1984年由国际标准化组织ISO(International Organization for Standardization)发布的,现在已被公认为计算机互联通信的基本体系结构模型,描述了信息如何从一台计算机的应用层软件通过网络媒体传输到另一台计算机的应用层软件中。OSI参考模型把网络中计算机之间的信息传递分成7个小的易于
2、管理的层,OSI的七层协议分别执行一个(或一组)任务,完成特定的网络功能,各层间相对独立,互不影响。七层分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP(Transmission Control Protocol),指的是传输控制协议,它是主要负责数据的分组和重组。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能TCP是一个“可靠的”、面向连结的传输机制,通过三次握手建立连接。它提供一种可靠的字节流保证数据完整、无损并且按顺序到达TCP协议Java实用编程技术UDP(User Datagram Protocol)指的是用户数据报协议。和TCP一样都是网络
3、传输层上的协议,但与TCP有本质的区别UDP是“不可靠”、无连结和面向消息的协议,它使用数据报进行传输UDP协议Java实用编程技术端口(Port)可以被理解成计算机与外界通信交流的窗户。网络上的一台计算机可以提供多种服务,单靠IP地址无法将它们区别开,所以通过“IP地址+端口号”的形式来区分不同的服务端口号是一个整数,通常范围在065535。小于1024的端口号一般的分配给特定的服务协议的端口端口JavaJava实用编程技术实用编程技术套接字,是支持TCP/IP的网络通信的基本操作单元,可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创
4、建,通过绑定与网络驱动建立关系通常用的TCP/IP协议的3种套接字类型有 流套接字(SOCK_STREAM)、数据报套接字(SOCK_DGRAM)、原始套接字(SOCK_RAW)流套接字用于提供面向连接、可靠的数据传输服务数据报套接字(SOCK_DGRAM):数据报套接字提供了一种无连接的服务原始套接字(SOCK_RAW):原始套接字可以读写内核没有处理的IP数据包套接字套接字JavaJava实用编程技术实用编程技术Java 通过扩展流式输入/输出接口和增加在网络上建立输入/输出对象特性这两个方法支持 TCP/IPJava 支持TCP和UDP协议族Java提供的网络功能有三大类:URL、Soc
5、ket、DatagramTCP用于网络的可靠的流式输入/输出。UDP支持更简单的、快速的、点对点的数据报模式JAVA和网和网络JavaJava实用编程技术实用编程技术 TCP协议网络编程TCP协议 TCP是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个套接字之间必须建立连接,一旦两个套接字连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。与UDP不同,TCP对传输数据的大小没有限制。在包中提供了两个类Socket和ServerSocket,分别用来表示
6、双向连接的客户端和服务器端。基于TCP的Socket编程ServerServerSocket(int port)Socket.accept()OutputStreamSocket.getOutputSrteam()InputStreamSocket.getInputStream()Socketclose()ClientSocket(inetAddress Address,int port)OutputStreamSocket.getOutputSrteam()InputStreamSocket.getInputStream()Socketclose()服务器程序编写服务器程序编写:1.调用Se
7、rverSocket(int port)创建一个服务器端套接字,并绑定到指定端口上;2.调用accept(),监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字.3.调用Socket类的getOutputStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接受.4.最后关闭通信套接字.客户端程序编写客户端程序编写:1.调用Socket()创建一个流套接字,并连接到服务器端;服务器ip地址,和端口号.2.调用Socket类的OutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接受3.最后关闭通信套接字.
8、3 TCP协议网络编程协议网络编程下面是一个典型的创建下面是一个典型的创建Server端端ServerSocket的过程的过程:ServerSocket server=null;try server=new ServerSocket(4700);/创建一个创建一个ServerSocket在端口在端口4700监听客户请监听客户请求求catch(IOException e)System.out.println(can not listen to:+e);Socket socket=null;try socket=server.accept();/accept()是一个阻塞的方法,一旦有客户请求,是
9、一个阻塞的方法,一旦有客户请求,/它就会返回一个它就会返回一个Socket对象用于同客户进行交互对象用于同客户进行交互catch(IOException e)System.out.println(Error:+e);3 TCP协议网络编程协议网络编程下面是一个典型的创建客户端下面是一个典型的创建客户端Socket的过程的过程:trySocket socket=new Socket(127.0.0.1,4700);/127.0.0.1是TCP/IP协议中默认的本 /机地址catch(IOException e)System.out.println(Error:+e);import java.io
10、.*;import .*;public class ServerSoc public static void server()try ServerSocket ss=new ServerSocket(6000);System.out.println(“服务器已经启动”);Socket s=ss.accept();OutputStream os=s.getOutputStream();InputStream is=s.getInputStream();os.write(Hello,welcom you!.getBytes();byte buf=new byte100;int len=is.rea
11、d(buf);System.out.println(服务器收到客户信息:+new String(buf,0,len);os.close();is.close();ss.close();catch(Exception ex)ex.printStackTrace();import java.io.*;import .*;public class ClientSoc public static void main(String args)client();public static void client()try Socket s=new Socket(InetAddress.getByName(
12、null),6000);OutputStream os=s.getOutputStream();InputStream is=s.getInputStream();os.write(Hello,this is zhangsan.getBytes();byte buf=new byte100;int len=is.read(buf);System.out.println(客户收到服务器信息:“+new String(buf,0,len);os.close();is.close();s.close();catch(Exception ex)ex.printStackTrace();服务器窗口显示服
13、务器窗口显示:服务器收到客户信息:服务器收到客户信息:Hello,this is zhangsan客户端窗口显示客户端窗口显示:客户收到服务器信息:客户收到服务器信息:Hello,welcom you!package code;import .*;import java.io.*;public class DemoSocket extends Threadprivate Socket s;public DemoSocket(Socket s)this.s=s;public void run()tryOutputStream os=s.getOutputStream();InputStream
14、is=s.getInputStream();os.write(Hello,welcom you!.getBytes();byte buf=new byte100;int len=is.read(buf);System.out.println(服务器端收到客户端信息:“+new String(buf,0,len);os.close();is.close();s.close();catch(Exception ex)ex.printStackTrace();多线程编程多线程编程public static void server()tryServerSocket ss=new ServerSocke
15、t(6000);while(true)Socket s=ss.accept();new DemoSocket(s).start();catch(Exception ex)ex.printStackTrace();public static void client()trySocket s=new Socket(InetAddress.getByName(null),6000);OutputStream os=s.getOutputStream();InputStream is=s.getInputStream();byte buf=new byte100;int len=is.read(buf
16、);System.out.println(客户端收到服务器端信息:“+new String(buf,0,len);os.write(Hello,this is wuxing.getBytes();os.close();is.close();s.close();catch(Exception ex)ex.printStackTrace();public static void main(String args)if(args.length0)server();elseclient();服务器端收到客户端信息:服务器端收到客户端信息:Hello,this is wuxing服务器端收到客户端信息:
17、服务器端收到客户端信息:Hello,this is zhangsan服务器端收到客户端信息:服务器端收到客户端信息:Hello,this is wuxing客户端窗口客户端窗口1显示显示:客户收到服务器信息:客户收到服务器信息:Hello,welcom you!客户端窗口客户端窗口2显示显示:客户收到服务器信息:客户收到服务器信息:Hello,welcom you!服务器窗口显示服务器窗口显示:UDP协议网络编程UDP协议 UDP是User Datagram Protocol的简称,是一种无连接的协议,每个数据包都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 Java网络编程 Java 网络 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内