《网络编程技术》实验指导书第二部分-软121-蔡钺-122573_第1页
《网络编程技术》实验指导书第二部分-软121-蔡钺-122573_第2页
《网络编程技术》实验指导书第二部分-软121-蔡钺-122573_第3页
《网络编程技术》实验指导书第二部分-软121-蔡钺-122573_第4页
《网络编程技术》实验指导书第二部分-软121-蔡钺-122573_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验六:URL网络程序设计实验目的:掌握URL类的使用:URL的概念和编程。实验要求:1、掌握网络编程的基本概念。2、掌握URL类的简单应用。3、利用URL类与URLConnection类获取资源。实验内容:1、用Java实现底层网络通讯下面的语句利用主机名找到网络中相应的计算机的IP地址并打印出来。程序中用到了InetAddress类,它主要用来区分计算机网络中的不同节点,即不同的计算机并对其寻址。importnet.*;publicclassMyIpAdresspublicstaticvoidmain(Stringargs)tryif(arg.Length=1)InetAdressipa=

2、InetAddress。GetByName(args0);System.Out.println(“Hostname:”+ipa.GetHostName();System.out.println(“HostIPAddress:”+ipa.toString();System.out.println(“Localhost:”+InetAddress.getLocalHost();elsesystem.out.println(“Error,exceptahodtnameascommandineparameter.”);catch(UnknownExceptione)system.out.println

3、(e.toString();编译并运行程序。2、获取URL信息,源代码如下:.*;importjava.io.*;publicclassURLTestpublicstaticvoidmain(Stringargs)URLurl=null;InputStreamis;tryurl=newURL( HYPERLINK http:/localhost/index.html http:/localhost/index.html);is=url.openStream();intc;trywhile(c=is.read()!=-1)System.out.print(char)c);catch(IOExce

4、ptione)finallyis.close();catch(MalformedURLExceptione)e.printStackTrace();catch(IOExceptione)e.printStackTrace();System.out.println(”文件名:+url.getFile();System.out.println(”主机名:+url.getHost();System.out.println(端口号:+url.getPort();System.out.println(”协议名:+url.getProtocol();编译并运行程序。3、利用URL类获取网络资源,源代码如下

5、:.*;importjava.io.*;publicclassURLReaderpublicstaticvoidmain(Stringargs)throwsExceptionURLweb=newURL( HYPERLINK 50:2222/ 50:2222/);BufferedReaderin=newBufferedReader(newInputStreamReader(web.openStream();StringinputLine;while(inputLine=in.readLine()!=null)System.out.println(inputLine);in.close();编译并

6、运行程序。4、利用URLConnection对URL资源的读取,源代码如下:.*;importjava.io.*;publicclassURLConnectionReaderpublicstaticvoidmain(Stringargs)throwsExceptionURLweb=newURL( HYPERLINK 50:2222/ 50:2222/);URLConnectionwebc=web.openConnection();/getaninstanceofURLConnectionBufferedReaderin=newBufferedReader(newInputStreamReade

7、r(webc.getInputStream();/useofURLConnectionStringinputLine;while(inputLine=in.readLine()!=null)System.out.println(inputLine);in.close();编译并运行程序。5、掌握URLConnection对URL资源的写入,源代码如下:importjava.io.*;.*;publicclassReversepublicstaticvoidmain(Stringargs)throwsExceptionif(args.length!=1)System.err.println(Us

8、age:javaReversestring_to_reverse);System.exit(1);StringstringToReverse=args0;URLurl=newURL( HYPERLINK /cgi-bin/backwards /cgi-bin/backwards);URLConnectionconnection=url.openConnection();connection.setDoOutput(true);PrintWriterout=newPrintWriter(connection.getOutputStream();out.println(string=+string

9、ToReverse);out.close();BufferedReaderin=newBufferedReader(newInputStreamReader(connection.getInputStream();StringinputLine;while(inputLine=in.readLine()!=null)System.out.println(inputLine);in.close();&曲广if-O-4-:快至丁=-:曲|吧咖三E舟小亍惜fc.理if(arjgs-lifigth1)|J1URLCanrectia-.lrfiimportjdVB,net.3publicla&Rea&r

10、yefpublicstaticvoidBainStringargsJJthrDUEEjci:epti0泡j尹tMyJauJETC丄曲(default匸By=jnmyguiIMylp/ResprURLjCcURLRtURLTt费JAVAh毋JAVAffiJA汕实脸ffiJAVAffiJMA实验谢JAM实瞪卜舟JAVASfilaKrbrLpbrk-Lp5y&tem.errprintln(Usage:javaRefersetririSyEtEn.exT.t(l);咅七厂ing,stringToReierxie-aidjURLurl=neuURL匚mi丿匚呂匸4丄口/亦匚IBURLConnectio-

11、nccnnectlon-urlopeneonnecl匚onnectionsetEJoOutput(1zuu);PrintMritrrout=newPrintWrifercanne匚tiLcm,呂亡tOMauI.printin(lstrinR=*+str1ngTcReserve);DUtaizlois巳OBuffEredReaderin-newEuiferedReader(newLnputStrStringinpytLine;while(infKjtLine=n.readLinef)!=nbllSy&tera.ftut*println(inputLine);IF:_月墅Javadoc屁S拄制吿?

12、l阮已囲止才IReseryeJaaC:Jawajdlcl.6.C371binuawaYrf,.ExeConn&ctMylyntonnEcttoyDurtasicandALMtoolsorrreteaIocjItaskjQ.ReserveftJmaint&tringlX驚|朗砧劉矍)|rfEJ-D-踊-MyJava/rc/Reservejava-E匚lipse母Mjpacka園Nei-vFile.h豉JRE舷库JhtmlNmln生=httpt,口宙丄9日9艾htirl卜|var_U=undefined;varg_HrttpRelative%ebRoct=Vccnra/*;varSSContrit

13、KitorfalsevorSSForceCotributor-nlse;varSSHlide-Contribli七orUI=-Falsejar_s.sUrIPrefix=technetrfork/!Pj编译并运行程序。实验七:使用TCP协议的Socket网络程序设计实验目的:掌握Socket通讯机制,掌握Socket和ServerSocket类和相关方法。实验要求:通过Socket编程,掌握网络应用程序的开发方法;掌握利用Java提供的基本组件进行网络传输;掌握Java提供的多线程机制,异常处理机制和低层对协议的通信机制,通过Socket编程,掌握网络应用程序的开发方法。实验内容:1、创建服务

14、器和客户程序,在运行客户程序的计算机上输入的内容,可以在服务器屏幕上看到。服务器端源程序importjava.io.*;.*;publicclassServerClientpublicServerClient(intport)Serverserver=newServer(port);server.start();Clientclient=newClient(port);client.start();publicstaticvoidmain(Stringargs)newServerClient(7777);/服务器线程classServerextendsThread/使用端口号intport;S

15、erverSocketserver;Socketsocket;/服务器输出流DataOutputStreamoutStream=null;/服务器输入流DataInputStreaminStream=null;publicServer(intport)trythis.port=port;server=newServerSocket(port);catch(Exceptione)System.out.println(e.toString();publicvoidrun()try/监听用户连接socket=server.accept();outStream=newDataOutputStream(

16、socket.getOutputStream();inStream=newDataInputStream(socket.getInputStream();/服务器准备好,可以进行通讯System.out.println(serverisok,pleasecontinue!);while(true)/读取从客户端发送的信息Stringstr=inStream.readUTF();System.out.println(TheserverreceiveString:+str);/将信息重新向客户端发送outStream.writeUTF(str);catch(Exceptione)System.ou

17、t.println(e.toString();classClientextendsThread/指定通讯端口intport;Socketsocket;DataInputStreaminStream=null;DataOutputStreamoutStream=null;publicClient(intport)trythis.port=port;建立同本地机子的socket连接socket=newSocket(InetAddress.getLocalHost(),port);inStream=newDataInputStream(socket.getInputStream();outStrea

18、m=newDataOutputStream(socket.getOutputStream();/客户端准备好,可以进行通讯System.out.println(clientisok,pleasecontinue!);catch(Exceptione)System.out.println(e.toString();publicvoidrun()trywhile(true)byteb=newbyte1024;Stringstr=;/从键盘读取字符串intm=System.in.read(b);str=newString(b,0,0,m-1);/向服务器发送信息outStream.writeUTF(

19、str);/从服务器读取信息str=inStream.readUTF();System.out.println(TheclientreceiveString:+str);catch(Exceptione)System.out.println(e.toString();客户端源程序.*;importjava.io.*;publicclassSocketClientSockets=null;DataInputStreaminStream=null;DataOutputStreamoutStream=null;publicSocketClient()tryinit();waitData();catc

20、h(Exceptione)System.out.println(e.toString();voidinit()throwsExceptions=newSocket(16,8765);inStream=newDataInputStream(s.getInputStream();outStream=newDataOutputStream(s.getOutputStream();s.setSoTimeout(3000);voidwaitData()while(true)tryStringstr=inStream.readUTF();System.out.println(Clientaccept:+s

21、tr);str=Integer.toString(Integer.parseInt(str)+1);outStream.writeUTF(str);catch(Exceptione)System.out.println(e.toString();break;publicstaticvoidmain(Stringargs)newSocketClient();编译并运行程序。2、使用ServerSocket类和Socket类实现按如下协议通信的服务器端和客户端程序。服务器程序的处理规则如下:1)向客户端程序发送VerifyingServer!。2)若读口令次数超过3次,则发送IllegalUser

22、!给客户端,程序退出。否则向下执行步骤3)。3)读取客户端程序提供的口令。4)若口令不正确,则发送PasswordWrong!给客户端,并转步骤2),否则向下执行步骤5)。5)发送RegistrationSuccessful!给客户端程序。客户端程序的处理规则如下:1)读取服务器反馈信息。2)若反馈信息不是VerifyingServer!,则提示ServerWrong!,程序退出。否则向下执行步骤3)这里偷懒了,没写应该在client里的3)if(!str.equals(RegistrationSuccessful!)4)/5)byteb=newbyte512;intm=System.in.r

23、ead(b);str=newString(b,0,0,m-1);outStream.writeUTF(str);加上if(str.equals(“VerifyingServer!”)Elsestr=”ServerWrong”;outStream.writeUTF(str);break;再在Server里加入检测”ServerWrong”并break的判断提示输入PassWord并将输入的口令发送给服务器。读取服务器反馈信息。若反馈信息是IllegalUser!,则提示IllegalUser!,程序退出。否则向下执行步骤6)若反馈信息是PasswordWrong!,则提示PassWordWron

24、g!,并转步骤3),否则向下执行步骤。输出RegistrationSuccessful!。packageJAVA实验七;importjava.io.*;.*;publicclassMyServerextendsThreadintport;ServerSocketserver;Socketsocket;DataOutputStreamoutStream=null;DataInputStreaminStream=null;publicMyServer(intport)throwsIOExceptiontrythis.port=port;server=newServerSocket(port);ca

25、tch(Exceptione)System.out.println(e.toString();publicvoidrun()intlimit=0;booleansucceedflag=false;trysocket=server.accept();outStream=newDataOutputStream(socket.getOutputStream();inStream=newDataInputStream(socket.getInputStream();Stringstr=VerifyingServer;System.out.println(serverisready,plzcontinu

26、e);outStream.writeUTF(str);while(limit3)/outStream.writeUTF(str);/verifyingserverstr=inStream.readUTF();读取令System.out.println(Serverreceiver:+str);if(str.equals(passwordr)str=RegistrationSuccessful!;outStream.writeUTF(RegistrationSuccessful!);succeedflag=true;break;elsestr=PassWordWrong!;outStream.w

27、riteUTF(PassWordWrong!);limit=limit+1;if(succeedflag)System.out.println(RegistrationSuccessful!);elseSystem.out.println(IllegalUser!);catch(Exceptione)System.out.println(e.toString();publicstaticvoidmain(Stringargs)tryMyServerms=newMyServer(4567);MyClientmc=newMyClient(4567);ms.start();mc.start();ca

28、tch(Exceptione)System.out.println(e.toString();packageJAVA实验七;importjava.io.*;.*;publicclassMyClientextendsThreadintport;Socketsocket;DataOutputStreamoutStream=null;DataInputStreaminStream=null;publicMyClient(intport)trythis.port=port;socket=newSocket(InetAddress.getLocalHost(),port);inStream=newDat

29、aInputStream(socket.getInputStream();outStream=newDataOutputStream(socket.getOutputStream();System.out.println(Clientisready,plzcontinue);catch(Exceptione)System.out.println(e.toString();SuppressWarnings(deprecation)publicvoidrun()trywhile(true)this.sleep(1000);Stringstr=;str=inStream.readUTF();Syst

30、em.out.println(Clientreceive:+str);if(!str.equals(RegistrationSuccessful!)byteb=newbyte512;intm=System.in.read(b);str=newString(b,0,0,m-1);outStream.writeUTF(str);elsebreak;catch(Exceptione)System.out.println(e.toString();实验八:使用UDP协议的Socket网络程序设计实验目的:掌握Socket通讯机制,掌握DataGramSocket和DataGramPacket类和相关方

31、法。实验要求:通过Socket编程,掌握网络应用程序的开发方法;掌握利用Java提供的基本组件进行网络传输;掌握Java提供的多线程机制,异常处理机制和低层对协议的通信机制,通过Socket编程,掌握网络应用程序的开发方法。实验内容:1、服务器接收客户端发来的空数据包,由接收的数据包获得客户端的IP地址和端口号,然后将服务器端的当前时间以数据包的形式发送给客户端。当超过10个客户端请求后,服务器端自动关闭。客户端首先发送请求数据包,然后等待接收服务器端传回来的带有服务器当前时间的数据包,显示服务器端发送的时间之后关闭。代码如下:服务器端程序:.*;importjava.io.IOExcepti

32、on;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassUDPServerprivateintcounter=0;privateDatagramSocketsocket=null;publicUDPServer()throwsIOExceptionsocket=newDatagramSocket(9080);publicvoidrun()SimpleDateFormatformatter=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);trydobytebuf=newbyte19;D

33、atagramPacketpacket=newDatagramPacket(buf,buf.length);socket.receive(packet);Stringtime=formatter.format(newDate();buf=time.getBytes();InetAddressaddress=packet.getAddress();intport=packet.getPort();packet=newDatagramPacket(buf,buf.length,address,port);socket.send(packet);counter+;System.out.println

34、(counter);while(counter10);catch(IOExceptione)e.printStackTrace();socket.close();publicstaticvoidmain(Stringargs)throwsExceptiontrySystem.out.println(”服务器端已启动!);newUDPServer().run();System.out.println(”服务器端已关闭!);System.exit(0);catch(IOExceptione)e.printStackTrace();客户端程序:.*;importjava.io.IOException

35、;publicclassUDPClientprivateStringserverIP=127.0.01;privateDatagramSocketsocket=null;publicUDPClient()throwsSocketExceptionsocket=newDatagramSocket();publicvoidsetServerIP(StringserverIP)this.serverIP=serverIP;publicvoidrun()trybytebuf=newbyte19;InetAddressaddress=InetAddress.getByName(serverIP);Dat

36、agramPacketpacket=newDatagramPacket(buf,buf.length,address,9080);socket.send(packet);packet=newDatagramPacket(buf,buf.length);socket.receive(packet);Stringreceived=newString(packet.getData();System.out.println(”服务器端时间:+received);socket.close();catch(UnknownHostExceptione)e.printStackTrace();catch(So

37、cketExceptione)e.printStackTrace();catch(IOExceptione)e.printStackTrace();publicstaticvoidmain(Stringargs)throwsExceptiontrySystem.out.println(客户器端启动,请求获取服务器当前时间的信息.);newUDPClient().run();System.out.println(”客户器端已获得服务器当前时间,自动关闭!”);catch(IOExceptione)e.printStackTrace();1pckag亡JAVA2rft.:;priUiateStri

38、ng&eQMyClientjava_MymrverjaMa盘)Sem-erClientja/a|7SeirverExamphJvaTSocketClient.jpva卜fiJAVA罐二J少地汕喫脸八胡MyUDP.jaa|7U&PCliert.java|7UDPServer.javial丿関丛妻脸三曲|出JAVASEBE3|曲IMypackage囱Mew百leihtmlMJRE幕锭库JavflE-1.63田importjavjanet*口5publicclassUDPlient7tJJAVAS?1.JQkUDPClient口CTverilocketcUDPdisetGerrunQ:Jmain(S

39、编译并运行程序。2、使用UDP编程,客户机发送数据到服务器,服务器将接收到的数据返回给客户机。packageJAVA实验八;importjava.io.IOException;.DatagramPacket;.DatagramSocket;.InetAddress;.SocketException;.UnknownHostException;publicclassMyUDPSpublicstaticvoidmain(Stringargs)trySystem.out.println(”服务器端已启动!);newMyUDPServer().run();System.out.println(”服务器

40、端已关闭!);System.exit(0);catch(IOExceptione)e.printStackTrace();classMyUDPServerprivateintcounter=0;privateDatagramSocketsocket=null;publicMyUDPServer()throwsIOExceptionsocket=newDatagramSocket(6666);publicvoidrun()trydobytebuf=newbyte512;DatagramPacketpacket=newDatagramPacket(buf,buf.length);socket.re

41、ceive(packet);Stringtime=;buf=time.getBytes();InetAddressaddress=packet.getAddress();intport=packet.getPort();packet=newDatagramPacket(buf,buf.length,address,port);socket.send(packet);counter+;System.out.println(counter);while(counter0辆咐)d|mm円耳t心弊CU3U戟谡4513indiblLcmLdsctljrfvri:ra叶btlf.5enSL:e*JM.iffl:i|.bC*nflaCTOltJbQ*i.ECEdJM1LLaWlliTi!laddBhbK*JiiLLp.pLB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论