1 / 9
文档名称:

《网络编程技术及应用》实验报告5.pdf

格式:pdf   大小:695KB   页数:9页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《网络编程技术及应用》实验报告5.pdf

上传人:1781111**** 2024/4/29 文件大小:695 KB

下载得到文件列表

《网络编程技术及应用》实验报告5.pdf

相关文档

文档介绍

文档介绍:该【《网络编程技术及应用》实验报告5 】是由【1781111****】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【《网络编程技术及应用》实验报告5 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..计算机软件技术专业验报告书课程名称:网络编程技术及应用助学单位姓名准考证号成绩二O一二年九月:..应用报告:。。。二、实验任务:、实验器材:。。四、实验内容与步骤:练****一)。,它们是:1)(StringhostName)throwsUnknowHostException它需要将寻找的主机名作为参数,并使用DNS查找主机的IP地址2)Address[](Stringhostname)throwsUnknowHostException地址,给定一个主机名,()会返回一个包含了与该主机名相对应的所有地址的数组。例如:/)3)()()执行在一个计算机上,Address。Address对象。:1)publicStringgetHostName()getHostName()方法返回一个String,Address对象表示的IP地址的主机名称,如果没有主机名返回一个具有点分形式的数字IP地址。2)publicbyte[]getAddress()getAddress()将IP地址以网络字节顺序作为字节数组返回。例如:InetAddressme=();byte[]address=();1:..Java没有无符号字节的基本数据类型。值超过127以上的字节会作负数看待。因此需要做以下的改进:intunsignedByte=signedByte<0?signedByte+256:signedByte;3)publicStringgetHostAddress()getHostAddress()方法返回一个字符串,该字符串包含了点分格式的IP地址InetAddress类中没有与它们相对应的setHostName()和setAddress()方法,因此Java可以确保主机名和IP地址的匹配。三..。。它重载了3个方法并提供了更加特殊的功能1)publicBooleanequals(Objecto)Address类的一个实例并且它具有相同的IP地址时,该对象等同于一个InetAddress对象。但是不需要具有相同的主机名。即只要IP地址相同就可以了。2)publicinthashCode()hashCode()方法返回一个int,Address对象在散列表中作为关键字使用时需要这个int值。hashCode()返回的int仅仅是被转换的int的4个字节的IP地址。该值对每两个不等同的InetAddress对象是不同的。Address对象具有相同的地址,则即使它们具有不同的主机名也会具有相同的散列码。Address对象作为关键字在散列表中存储两个对象,则第二个对象会重载第一个对象。解决方法是使用getHostName()方法返回的String作为Address本身。3)publicStringtoString()toString()产生的字符串具有下面的形式:主机名/点分地址Address对象都有主机名,无主机名就用点分格式的IP地址来代替,该格式不明确地调用toString()。如要调用,语法很简单:puter=();Stringaddress=();。.URL类是对统一资源定位符的抽象。URL对象建立后,它的字段就不再改变。.URL实例的六个构造器:1)用字符串构造URLpublicURL(Stringurl)throwsMalformedURLException2)用组件构造URLpublicURL(Stringprotocol,Stringhostname,Stringfile)throwsMalformedURLException这个构造器将端口设置为-1,所以协议的所有默认端口都可以用。3)用组件构造URLpublicURL(Stringprotocol,Stringhost,intport,Stringfile)throwsMalformedURLException对于默认端口不正确的极少见情况,这个构造器可以明确地用int变量指定端口4)构造相对URLpublicURL(URLbase,Stringrelative)throwsMalformedURLException这个构造器根据相对URL和基本URL构造绝对URL例如:try{2:..URLu1=newURL(”);URLu2=newURL(u1,””);}catch(MalformedURLExceptione){(e);}5)指定URLStreamHandlerpublicURL(URLbase,Stringrelative,URLStreamHandlerhandler)throwsMalformedURLException这个构造器由一个基本URL和相对part构建一个相对URL,然后用指定的处理器处理URL6)指定URLStreamHandlerpublicURL(Stringprotocol,Stringhost,intport,Stringfile,URLStreamHandlerhandler)throwsMalformedURLException这个构造器从它的组件部分构建URL,然后用指定的处理器处理URL。除了这些构造器,Java类库中还有许多其他方法返回URL对象。其中大多数只是简单的获取方法,只返回用户可能已经知道的URL,因为用户已经首先用它来创建对象。:1)策略(scheme),也可以认为是协议2)权限权限可以进一步分为用户信息、主机和端口。3)路径4)参考(ref),也称为节(section)或者已命名锚(namedanchor)5)查询字符串以只读方式访问URL这五部分的公共方法:1)publicStringgetProtocol()getProtocol()方法返回一个String,包含URL的策略:比如:”http”,”https”,”file”等等。2)publicStringgetHost()getHost()方法返回一个String,包含URL的主机名。3)publicintgetPort()getPort()方法返回端口号,该数值是一个在URL中指定的int。如果在URL中没有指定端口,那么getPort()方法返回-1,标志着URL没有明确指定端口,同时使用协议的默认端口。4)publicStringgetFile()getFile()方法返回一个String,其中包含URL的路径和文件部分。从主机名后的第一个“/”开始,到另起一部分的“#”之前的符号,全部认为是文件部分。5)publicStringgetPath()它与getFile()方法意义相同。6)publicStringgetRef()getRef()返回URL的命名锚部分。如果URL没有一个已命名的锚,那么这个方法返回null。3:..try{URLu=newURL(“#xtocid1902914”);(“Therefof”+u+“is”+();}catch(MalformedURLExceptione){(e);}这段代码返回中,getRef()返回的字符串xtocid19029147)publicStringgetQuery()getQuery()方法返回URL的查询字符串。如果URL没有查询字符串,那么这个方法返回null。8)publicStringgetUserInfo()某些URL包含用户名,并且甚至包含密码信息。它位于策略之后和主机名之前,“@”符号划定它的范围。如果URL不包含任何用户信息,那么这个方法返回null。MailtoURL会出现例外,在mailto:******************.edu这样的URL中,******************.edu是路径,而不是用户信息和主机名。9)publicStringgetAuthority()getAuthority()返回URL的权限。包括用户信息、主机名和端口。)publicfinalInputStreamopenStream()throwsIOExceptionopenStream()方法连接URL参考的资源,实现客户机和服务器之间所有必要的握手连接,并且从可读数据返回InputStream。从InputStream得到的数据是URL参考文件的原始(即没有解析过的)内容。2)publicURLConnectionopenConnection()throwsIOExceptionopenConnection()方法打开一个到指定URL的套接字并且返回一个URLConnection对象。URLConnection代表一个到网络资源的开放连接。3)publicfinalObjectgetContent()throwsIOExceptiongetContent()方法检索URL参考的数据,并且试图把它转换成对象的某个类型。4)publicfinalObjectgetContent(Class[]classes)throwsIOExceptiongetContent()方法的重载变量使得可以选择我们想要的类作为返回内容,这个方法试图按数组中的顺序返回URL的内容。例如:URLu=newURL(“”);Class[]types=newClass[3];types[0]=;types[1]=;types[2]=;objecto=(types);4:..instanceof测试返回对象的类型if(oinstanceofString){(o);}elseif(oinstanceofReader){intc;Readerr=(Reader)c;while((c=())!=-1)((char)c);}elseif(oinstanceofInputStream){intc;InputStreamin=(InputStream)o;While((c=())!=-1)(c);}else{(“Error:unexceptedtype”+());})publicbooleansameFile(URLother)sameFile()方法测试测试两个URL对象是否指向同一个文件。sameFile()执行的检测非常肤浅,它只是比较相对立的字段是否相等。sameFile()和equals()有相似之处,差别在于equals()需要考虑所有任何参数,而sameFile()不考虑。此外,任何类都可以传递到equals(),却只有URL类能传递到sameFile()。2)publicStringtoExternalForm()toExternalForm()和toString()方法相同。,所以可以访问Object类的全部方法。类似于IentAddress类的对象方法。)publicstaticsynchronizedvoidsetURLStreamHandlerFactory(URLStreamHandleFactoryfactory)这个方法为应用程序设置URLStreamHandleFactory,如果已经设置了类库,则此方法触发一个通用Error。2)publicvoidset(Stringprotocol,Stringhost,intport,Stringauthority,StringuserInfo,Stringpath,Stringquery,Stringref):...URLEncoderencode()的单一静态方法publicstaticStringencode(Strings)()把任何非文字数字字符(除了空格、下划线、连字号、句点和星号)都转换位%序列,空格被转换为加号。URLEncoder的主要用途在于为使用GET的CGI程序的通信准备查询字符串。URLDecoder类把所有的加号转换位空格,把所有的百分号转义符转换为相应的字符。publicstaticStringdecode(Strings)throwsException如果字符串包含一个百分号,而其后没有两个十六进制的数字,那么就会触发一个IllegalArgumentException。这个方法传递的是非转义字符,所以用户可以传递一个完整的URL。1、.smtp..smtp包的JSP引擎(如JSWDK)发送mail。(警告:使用内置的internalSun规范包,这将影响到你的jsp程序的可移植性。)以下scriptlet利用SmtpClient类在jsp文件中发送email。<%try{(from);(to);PrintStreammessage=();();();();();}catch(IOExceptione){}%>2、JavaMail是官方的JavamailAPI(可参考http://java./products/javamail/。)6:...,但它是可移植的。这里重新创建了一个MailSender类,它包含了JavaMailAPI。如下所示://ms_prefixisforMailSenderclassvariables//strprefixisforString//astrprefixisforarrayofStrings//strbufprefixisforStringBuffers,(StringstrFrom,//senderString[]astrTo,//recipient(s)String[],//bccrecipient(s),optionalStringstrSubject,//subjectbooleandebugging){ms_strFrom=strFrom;//whothemessageisfromms_astrTo=astrTo;//who(plural)themessageistoms_debugging=debugging;//who(plural)themessageisto//setthehostPropertiesprops=newProperties();//createsomepropertiesandgetthedefaultSessionSessionsession=(props,null);(ms_debugging);try{//createamessagems_msg=newMimeMessage(session);//setthefromAddressfrom=Address(strFrom);(from);//setthetoAddress[]address=Address[];for(inti=0;;++i){address[i]=Address(astrTo[i]);}(,address);//recipientsif(!=null){address=Address[.length];for(inti=0;.length;++i)7:..address[i]=Address([i]);}(,address);}//(strSubject);//setupthestringbufferwhichwillholdthemessagems_strbufMsg=newStringBuffer();}catch(MessagingExceptionmex){();}catch(Exceptionex){();}}publicvoidms_add(StringstrText){(strText);}publicvoidms_send(){try{//setthecontentasplaintext//(ms_msg);}catch(Exceptionex){}},,,基本上完成了各项任务。8