12高级编程-网络编程.pdf

上传人:asd****56 文档编号:70322767 上传时间:2023-01-19 格式:PDF 页数:25 大小:10.66MB
返回 下载 相关 举报
12高级编程-网络编程.pdf_第1页
第1页 / 共25页
12高级编程-网络编程.pdf_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《12高级编程-网络编程.pdf》由会员分享,可在线阅读,更多相关《12高级编程-网络编程.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、http:/ TCP/IP协议使用 ServerSocket 和 Socket类实现 TCP/IP客户机和服务器学习目标事实上网络编程简单的理解就是两台计算机相互通讯数据而已。网络编程网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。通信主体有两级 IP地址IP地址可定位网络上的任意一台主机 端口号端口号可定位主机的进程(即应用程序)网络基础知识在 TCP/IP协议中 IP层主要负责网络主机的定位,数据传输的路由,由 IP地址可以唯一地确定Internet上的一

2、台主机。而 TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心 IP层是如何处理数据的。TCP/IP协议简介尽管 TCP/IP协议的名称中只有 TCP这个协议名,但是在 TCP/IP的传输层同时存在 TCP和 UDP两个协议。TCP协议 TCP(TransferControlProtocol的简称)协议是一种面向连接的、可以提供可靠传输的协议。使用 TCP协议传输数据,接收端得到的是一个和发送端发出的完全一样的数据流(包括顺序)。发送方和接收方之间的两个端口必须建立连接。在程序中,端口之间建立连接一般使用的是 Socket(套接字)方法。TCP/IP传

3、输协议UDP协议 UDP(UserDatagramProtocol的简称)是一种无连接的协议,它传输的是一种独立的数据报(Datagram)每个数据报都是一个独立的信息,包括完整的源地址或目的地址。数据报在网络上以任何可能的路径传往目的地,因此,数据报能否到达目的地、到达目的地的时间、数据的正确性和各个数据报到达的顺序都是不能完全保证的。TCP/IP传输协议使用 UDP时,每个数据报中都给出了完整的地址信息,因此无需连接。对于 TCP协议,由于它是一个面向连接的协议,在进行数据传输之前必然要建立连接。使用 UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。而 TCP没有

4、这方面的限制,一旦连接建立起来,双方就可以按统一的格式传输大量的数据。UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。而 TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。TCP与 UDP的对比Java 的网络通信包是 ,它包含了各种标准网络协议通信的类和接口。Java网络程序设计的基本方式主要有三种:套接字 SocketSocket 是 TCP/IP协议中的传输层接口。连接通信是使用TCP/IP协议、建立在稳定连接基础上的、以流传输数据的通信方式。它是目前实现 C/S模式应用程序的主要方式。常见的聊天程序等就是连接通信的应用。网络编程的基

5、本方式 数据报通信数据报是一种在网络上传播的、独立的、自包含地址信息的格式化信息。数据报通信使用 UDP协议。数据报通信不需要建立连接,通信时所传输的数据报能否到达目的地、到达的时间、到达的次序都不能准确知道。数据报通信主要用于传输一些数据量大的、非关键性的数据。使用 URL访问网络资源URL表示了 Internet上某个资源的地址。URL支持 HTTP、FILE、FTP等多种协议。Java通过 URL标识,可以直接使用HTTP、FILE、FTP等多种协议,获取远端计算机上的资源信息,方便快捷地开发 Internet应用程序网络编程的基本方式IP地址是 TCP/IP网络中的每台计算机都有的唯一

6、地址。在 Java中,InetAddress 类被用于表示 IP地址。取得本机 IP地址通过域名查询 IP地址InetAddress 类URL即 统一资源定位地址(UniformResourceLocator,URL),它规范了 WWW资源定位地址的表示法方式。其表示格式如下:protocol:/host_name:port/resource_name#anchor常见的协议与端口号:HTTP80 HTTPS433 FTP21 TELNET 23 SMTP25URL简介类 URL代表一个统一资源定位符,它可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。UR

7、L的构造方法 publicURL(Stringspec)publicURL(URLcontext,Stringspec)读取 URL中的资源 InputStream openStream()throwsIOException方法可以返回一个输入流。该输入流指向 URL对象所包含的资源。通过该输入流可以将服务器上的资源信息读入到客户端。URL类对象套接字 套接字有两个流:一个输入流和一个输出流。套接字的每一端都有两个流。建立连接 建立网络连接类似于电话系统:一端必须拨打电话,而另一端必须在接听。寻址连接包括以下内容:远端计算机的地址或名称 在服务器上识别目的的端口号(065535)。套接字 SS

8、ocket连接模型使用 ServerSocket 类建立一个等待请求的服务器套接字对象。构造方法 ServerSocket(int port)创建一个端口号为 port的服务器套接字对象。ServerSocket(int port,int backlog)可通过 backlog指定最大连接数。ServerSocket(intport,intbacklog,InetAddressaddress)可指定绑定的 IP地址为 address。接受客户的套接字连接请求 publicSocketaccept()throwsIOException侦听并接受到此套接字的连接。ServerS客户端使用 Sock

9、et类建立一个到服务器的套接字对象,连接建立后服务器与客户机双方都通过 Socket进行通信。构造方法 Socket(Stringhost,int port)创建一个套接字对象,host指定主机,port指定端口。Socket(Stringhost,int port,InetAddress localAddr,intlocalport)额外指定本地机使用的地址和端口(localAddr 可设置为null)。获得输入/输出流 getInputStream()返回此套接字的输入流。getOutputStream()返回此套接字的输出流。S1.创建服务器 ServerSocket,设置建立连接的Po

10、rt。2.创建客户机 Socket,设置绑定的主机名称或 IP地址,指定连接端口号。3.客户机 Socket发起连接请求。4.建立连接(accept)。5.取得 InputStream 和 OutputStream。6.利用 InputStream 和 OutputStream 进行数据通信。编写 Socket程序的一般步骤把数据的读写操作分别放在独立的线程中去执行。服务器端接受一个客户套接字的请求后,就应该启动一个套专门为该客户服务的线程。尽量不要在主线程中进行套接字通信。支持多客户的 Socket程序基于 UDP的信息传递更快,但不提供可靠性保证。基于 UDP通信的基本模式:将数据打包,称

11、为数据包,然后将数据包发往目的地。接受别人发来的数据包,然后查看数据包中的内容。相关 Java类:DatagramPacket表示存放数据的数据报 DatagramSocket表示接受或发送数据报的套接字UDP数据报接收数据:创建 DatagramSocket 对象,监听指定端口DatagramSocket(int port)创建数据报套接字并将其绑定到本地主机上的指定端口。创建 DatagramPacket 对象,用于装载接收的数据DatagramPacket(bytebuf,int length)构造 DatagramPacket,用来接收长度为 length的数据包。等待接收数据包rec

12、eive(DatagramPacket p)从此套接字接收数据报包。UDP数据报发送数据:创建 DatagramSocket 对象,指定发送时的端口(也可让系统自行分配)DatagramSocket()构造数据报套接字并将其绑定到本地主机上任何可用的端口。创建待发送的 DatagramPacket 对象,给出发送内容与目标地址DatagramPacket(bytebuf,int length,SocketAddressaddress)InetSocketAddress(Stringhostname,int port)发送数据包send(DatagramPacket p)从此套接字发送数据报包U

13、DP数据报Internet的地址是 a.b.c.d 的形式。该地址的一部分代表用户自己主机,而另一部分代表用户所在的网络。当 a小于128,那么 b.c.d 就用来表示主机,这类地址称做A类地址。如果 a大于等于128并且小于192,则 a.b 表示网络地址,而 c.d 表示主机地址,这类地址称做 B类地址。如果 a大于等于 192,则网络地址是 a.b.c,d表示主机地址,这类地址称做 C类地址。224.0.0.0与239.255.255.255之间的地址称做 D类地址。多播数据包D类地址并不代表某个特定主机的位置,称做一个组播地址,加入到同一个组播地址的主机可以在某个端口上广播信息,也可以

14、在某个端口号上接收信息。224.0.0.0224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用;224.0.1.0238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效;239.0.0.0239.255.255.255 为本地管理组播地址,仅在特定的本地范围内有效。多播数据包多播的发送和 UDP发送无异,及可用MulticastSocket(可调整参数较为丰富)也可用DatagramSocket 进行数据发送,只是数据包的目标地址应为广播地址。多播的接收方:创建多播套接字MulticastSocket(int port)创建多播套接字并将其绑定到特定端口。加入多播组,可以加入多个joinGroup(InetAddress mcastaddr)加入多播组。接收多播数据包多播数据包

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁