如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第3讲Socket编程概述教学目标:了解网络通信的基本原理与应用开发掌握Socket类与ServerSocket类的应用教学重点、难点:1.教学重点:网络通信原理客户机/服务器(C/S)模式的原理URL与URLConnection的区别Socket类与ServerSocket类的应用2.教学难点:Socket类与ServerSocket类的应用3.1网络通信的原理(1)常见的几种通信协议IP协议在Internet网络通信中主要使用的协议有使用于网络层的IP协议(IP协议使用IP地址使数据投递到正确的计算机上);TCP、UDP协议适用于传输层的TCP、UDP(TCP和UDP协议使用端口号PORT将数据投递到正确的应用程序)协议;HTTP、FTP、SMTP、NNTP协议适用于应用层的HTTP、FTP、SMTP、NNTP(主要用于解释数据内容)协议等。例如Java语言中的套接字(Socket)编程就是网络通信协议的一种应用,Java语言将TCP/IP协议封装到Java.net包的Socket和ServerSocket类中。(2)IP地址网络中的每台计算机都必须有一个唯一的IP地址作为标识,这个数通常写作一组由“.”号分隔的十进制数,例如,思维论坛的服务器地址为218.5.77.187。正如所见IP地址均由4个部分组成,每个部分的范围都是0~255,以表示8位地址。(3)端口号端口号则是一个数字,其值一般在165535之间,其中11023一般保留用在知名的端口号或特定的UNIX服务,临时使用的端口号可取102465535之间的整数。端口号可以区分一台服务器上同时运行的不同种的服务程序。常见的一些internet服务对应的端口号如下所示:(4)InetAddress类在java.net包中,IP地址由一个称为InetAddress的特殊的类来描述。这个类提供了3个用来获得一个InetAddress类的实例的静态方法。getLocalHost()//返回一个本地主机的IP地址getByName(Stringhost)//返回对应于指定主机的IP地址getAllByName(Stringhost)//对于某个主机有多个IP地址可用于得到一个IP地址数组。例:获取本机的IP地址。importjava.net.*;publicclassgetLocalHostTest{publicstaticvoidmain(String[]args){InetAddressmyIP=null;try{myIP=InetAddress.getLocalHost();//myIP=InetAddress.getByName(“www.pku.edu.cn”);//根据域名自动到DNS上查找IP地址}catch{UnknowHostExceptione){}System.out.println(myIP);}}注意:创建InetAddress类不用构造函数(不用new运算符),而是通过InetAddress类直接调用其静态方法来获取IP地址。3.2URL类(1)URL(UniformResourceLocator统一资源定位器),是三大网络功能中最高级的一种,通过URLJava程序可以直接读入网络上的数据。URL的结构分为传输协议名和资源名称两部分,中间用“://”分隔开。在Internet上表示URL的典型传输协议有http、ftp、gopher和news等几种形式,例如:“http://www.263.net”和“ftp://www.bnu.edu.cn/pub”使用的分别是超文本传输协议和文件传输协议。(2)URL类对象的创建URL(Stringstr):使用完整的URL字符串直接创建一个URL对象。例子:URLmyurl=newURL(“http://www.edu.cn”);URL(Stringprotocal,Stringhost,Stringfile):用分散的协议名、主机名和文件名凑合成一个URL对象。例子:URLmyurl=newURL(“http”,“www.edu.cn”,“index.html”);URL(Stringprotocal,Stringhost,Stringport,Stringfile):用分散的协议名、端口号、主机名和文件名组成一个URL对象。例子:URLmyurl=newURL(“http”,“www.edu.cn”,“80”,“index.html”);URL(URLcontext,Stringspec):用给出的URL和基于该URL的一个相对路径构成一个URL对象。常用于Applet小程序中。例如:URL