欢迎来到天天文库
浏览记录
ID:27286564
大小:315.32 KB
页数:19页
时间:2018-12-01
《《网络编程》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第12章Java网络编程学习导读用Java开发网络软件非常方便且功能强大,Java用于开发网络程序的API均位于包java.net和javax.net中。在本章中我们将首先介绍Java网络编程中扮演重要角色的InetAddress类,再介绍套接字(Socket)的概念,同时以实例说明如何使用NetworkAPI操纵套接字。最后简单介绍在非连接的UDP协议下如何进行网络通讯。课程结构InetAddress类面对连接的流式套接字面向非连接的数据报12.1InetAddress简介InetAddress描述了32位或128位IP地址,要完成这个功能,InetAd
2、dress类主要依靠Inet4Address和Inet6Address两个支持类。这三个类是继承关系,InetAddrress是父类,Inet4Address和Inet6Address是子类。12.1InetAddress简介以通过下面的5个静态方法来创建一个InetAddress对象或InetAddress数组:(1)getAllByName(Stringhost)方法(2)getByAddress(byte[]addr)方法(3)getByAddress(Stringhost,byte[]addr)方法(4)getByName(Stringhost)方
3、法(5)getLocalHost()方法上面讲到的方法均提到返回一个或多个InetAddress对象的引用12.1InetAddress简介InetAddress和它的子类型对象处理主机名到主机IPv4或IPv6地址的转换例:InetAddressia=InetAddress.getByName("www.sun.com");见例12。112.2面向连接的流式套接字1什么是套接字Socket可以看成在两个程序进行通信连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中12.2面向连接的流式套接字在两个
4、网络应用程序之间发送和接收信息时需要建立一个可靠的连接,流套接字依靠TCP协议来保证信息正确到达目的地。在C/S程序中,包括了相关联的三个类:InetAddressSocketServerSocket12.2面向连接的流式套接字2ServerSocket类服务器程序套接字构造函数:ServerSocket(intport);port参数传递端口号,如果在这时出现错误将抛出IOException异常对象接下来服务程序进入无限循环之中。无限循环从调用ServerSocket的accept()方法开始,在调用开始后accept()方法将导致调用线程阻塞直到连接建
5、立。在建立连接后accept()返回一个最近创建的Socket对象,该Socket对象绑定了客户程序的IP地址或端口号。12.2面向连接的流式套接字例:该程序将创建一个ServerSocket对象来监听端口10000的连接请求,如果成功,服务程序将等待连接输入,开始一个线程处理连接,并响应来自客户程序的命令。见例12。212.2面向连接的流式套接字3Socket类当客户程序需要与服务器程序通信时,客户程序在客户机创建一个socket对象构造函数:Socket(InetAddressaddr,intport);Socket(Stringhost,intpor
6、t);可能通过调用Socket的getInputStream()方法从服务程序获得输入流读传送来的信息可能通过调用Socket的getOutputStream()方法获得输出流来发送消息12.2面向连接的流式套接字例:这个程序将创建一个Socket对象,Socket将访问运行在指定主机端口10000上的服务程序,如果访问成功,客户程序将给服务程序发送一系列命令并打印服务程序的响应见例12。312.3面向非连接的数据报1UDP简介(UserDatagramProtocal)UDP位于第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装以及不
7、能对数据报排序的缺点。当报文发送之后,是无法得知其是否安全完整到达的。12.3面向非连接的数据报2DatagramPacket类DatagramPacket类用于处理报文,它将Byte数组、目标地址和目标端口等数据包装成报文或者将报文拆卸成Byte数组构造函数:1)DatagramPacket(byte[]buf,intlength);其中buf参数包含了一个对保存自寻址数据报信息的字节数组的引用,length表示字节数组的长度可以通过调用方法setAddress(InetAddressaddr)和setPort(intport)添加上数据报地址和端口信息
8、12.3面向非连接的数据报2)DatagramPacket(byt
此文档下载收益归作者所有