版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第21讲网络编程21.1 InetAddress21.1 InetAddress类类21.2 URL21.2 URL类类21.3 URLConnection21.3 URLConnection类类21.4 Socket21.4 Socket通讯通讯讲后练习讲后练习互联上计算机之间的通讯必需遵照一定的协议,目前最广泛的网络协议是TCP/IP协议,IP协议主要担任网络主机的定位,实现数据传输的路由选择。实践运用中运用域名地址,域名和IP之间的转换经过域名解析完成。网络传输层担任数据传输时的正确性,该层有两类典型的通讯协议:TCP协议和UDP协议。1TCP:Transfer Control Prot
2、ocol经过TCP协议传输,得到的是一个顺序的无过失的数据流运用TCP通讯,发送方和接纳方首先要建立socket衔接,在客户/效力器通讯中,效力方在某个端口提供效力,等待客户方的访问衔接,建立衔接后,双方就可以发送和接纳数据了。2UDP:User Datagram ProtocolUDP是一种无衔接的协议,每个数据报都是一个独立的信息,包括完好的源地址或目的地址,它在网络上以任何能够的途径传往目的地。因此能否到达目的地、到达目的地的时间及内容的正确性都不能保证,但UDP无需进展衔接,传输效率高。如传输声音信号或视频信号等。包中提供了丰富的网络功能:1InetAddress类表示IP地址;2UR
3、L类封装了对资源的访问;3ServerSocket类和Socket类实现面向衔接的网络通讯;4DatagramPacket类和DatagrameSocket类实现数据报的收发21.1 InetAddress21.1 InetAddress类类因特网上用IP地址或域名标识主机,InetAddress对象封装了这两部分内容。InetAddress对象运用如下格式表示主机的信息:/41InetAddress类的主要方法有:1static InetAddress getByName(String host):根据主机名InetAddress对象,运用该方法必需捕
4、获UnknownHostException异常。2static InetAddress getLocalHost():前往本地主机对应的InetAddress对象,假设该主机无IP地址,那么产生UnknownHostException异常。3String getHostAddress():前往UnknownHostException异常的IP地址。4String getHostName():前往UnknownHostException异常的域名。21.2 URL21.2 URL类类URL:Uniform Resource Locator,一致资源定位符。用于从主机上读取资源只能读取,不能向主机
5、写。1一个URL地址通常由4部分组成:协议名:如http、ftp、file等主机名:如baidu、43等途径文件:如/java/index.jsp端口号:如8080、8081等2URL类的常用方法:String getFile():获取URL的文件名,它是带途径的文件标识;String getHost():获取URL的主机名;String getPath():获得URL的途径部分;int getPort():获得URL的端口号;URLConnection openConnection():前往代表与URL进展衔接的URLConnection对象;InputStream
6、 openStream():翻开与URL的衔接,前往来自衔接的输入流;Object getContent():获取URL的内容。21.3 URLConnection21.3 URLConnection类类URLConnection类可实现与URL资源双向通讯。它代表运用程序和 URL 之间的通讯链接。此类的实例可用于读取和写入此URL援用的资源。通常,创建一个到URL的衔接需求几个步骤:1经过在URL上调用openConnection方法创建衔接对象。 2处置设置参数和普通恳求属性。 3运用connect方法建立到远程对象的实践衔接,或者运用URL类的openConnection()方法建立实
7、践衔接。4远程对象变为可用。远程对象的头字段和内容变为可访问。21.4 Socket21.4 Socket通讯通讯Java提供了Socket类和ServerSocket类分别用于Client端和Server端的Socket通讯,下面是分别对这两个类进展引见。1Socket类构造方法: Socket(String, int):构造一个指定主机,指定端口号的Socket。 Socket(InetAddress, int):构造一个指定Internet地址,指定端口号的Socket。 2ServerSocket类 ServerSocket( int):创建绑定到特定端口的效力器套接字。 Server
8、Socket( int,int):创建效力器套接字并将其绑定到指定的本地端口号,其中第二个参数是监听时间的长度。3建立衔接与数据通讯 首先,在效力器端创建一个ServerSocket对象,此对象经过执行accept()方法监听客户端衔接,此时效力器端线程处于等待形状。然后在客户端构造Socket,与某效力器的指定端口进展衔接。效力器监听到衔接恳求后,就可在两者之间建立衔接,衔接建立后,就可以获得相应的输入、输出流进展通讯。在典型的效力器中,我们希望同时能处置多个客户的恳求。处理这个问题的关键就是多线程处置机制。最根本的方法是在效力器程序里创建单个ServerSocket,并调用accept()
9、来等候一个新衔接。一旦accept()前往,我们就获得结果获得的Socket,并用它新建一个线程,令其只为那个特定的客户效力。然后再调用accept(),等候下一次新的衔接恳求。21.5 21.5 无衔接的数据报无衔接的数据报 数据报是一种无衔接的通讯方式,它的速度比较快,但是由于不建立衔接,不能保证一切数据都能送到目的地,普通用于传送非关键性的数据。 1DatagramPacket类 此类是进展数据通讯的根本单位,包含需求传送的数据、数据报的长度、IP地址和端口号等信息。其构造方法如下: DatagramPacket(byte buf, int length) :构造 DatagramPac
10、ket,用来接纳长度为 length 的数据包。 DatagramPacket(byte buf, int length, InetAddress address, int port):构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。 DatagramPacket(byte buf, int offset, int length):构造 DatagramPacket,用来接纳长度为 length 的包,在缓冲区中指定了偏移量。DatagramPacket(byte buf, int offset, int length, InetAddress address, i
11、nt port):构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。 DatagramPacket(byte buf, int offset, int length, SocketAddress address):构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。 DatagramPacket(byte buf, int length, SocketAddress address):构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。 DatagramPacket类中的常
12、用函数有: void setData(byte buf):设置数据缓冲区。 byte getData():前往数据缓冲区。 getLength():前往发送或接纳数据报的长度。2DatagramSocket类DatagramSocket类是用来发送或接纳数据报的Socket,其构造方法如下: DatagramSocket():构造一个用于发送的DatagramSocket。 DatagramSocket(int port):构造一个用于接纳的DatagramSocket,参数为接纳端口号。3发送和接纳过程下面代码给出了数据报接纳和发送的编程要点,接纳端的IP地址是,端口号
13、是80,发送的数据在缓冲区message中,长度为200。接纳端的程序:byte inbuffer=new byte1024;/设置缓冲区DatagramPacket inpacket=new DatagramPacket(inbuffer,inbuffer.length);DatagramSocket insocket=new DatagramSocket(80);/设置端口号insocket.receive(inpacket);/接纳数据报String s=new String(inbuffer,0,0,inpacket.getLength();/将接纳的数据存入字符串。 发送端程序:/message为存放发送数据的字节数组DatagramPacket outpacket=new DatagramPacket(message,200,,80);DatagramSocket outsocket=new DatagramSocket();outsocket.send(outpacket);讲后练习讲后练习1、编写java程序,利用URL对象读取网络上文件的内容。2、编写程序实现:客户端Client.java向效力器Server.java端恳求恳求是一句话,为一个String。假设这句话的内容字符串是字符串“plain的话,效力器仅将“Hello字符串前往给用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程分包合同总公司与分公司协议(3篇)
- 鼓励孩子中考冲刺的话简单
- 25.1 锐角的三角比的意义(第1课时)同步练习
- 淋膜机买卖合同(3篇)
- 有关职业规划职业规划文档
- 高考地理二轮复习考前抢分专题识图技能专练图像七过程示意图含答案
- 劳动技术课教案范文(6篇)
- 年终获奖感言范文(35篇)
- 24.2 直角三角形的性质 同步练习
- 【鲁教54】第三次月考卷
- 新疆历史印记课件
- 2024城市公共设施适老化设施服务要求与评价
- 行政复议法-形考作业3-国开(ZJ)-参考资料
- 联合办公协议书范本
- 江苏省苏州市2023-2024学年七年级上学期期中阳光测评英语试题
- 【招标控制价编制研究文献综述(论文)4800字】
- SCA涂胶机内部培训资料
- EXCEL 支票打印模板
- 湖北省博物馆英文导游词
- 部分常用岩土经验值
- 疯狂动物城歌词.doc
评论
0/150
提交评论