《网络编程-.pdf》由会员分享,可在线阅读,更多相关《网络编程-.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.填空TCP 和UDP 都是传输层协议,TCP 是_(有连接|无连接)的协议,UDP 是_(有连接|无连接)的协议。这两种协议中,_协议更安全,而 _协议传输效率更高。2.(Socket 对象)对于 Socket,有以下代码:Socket s=new Socket(“192.168.0.100”,9000);以下说法正确的是:A.这句代码创建了一个Socket 对象的同时,创建了一个到192.168.0.100地址上 9000端口的 TCP 连接B.这句代码有可能产生异常C.创建的 Socket 对象,对其调用 getPort 方法,返回值为 9000D.创建的 Socket 对象,对其调用
2、 getLocalPort 方法,返回值为 9000E.关闭网络连接时,应当先分别关闭输入输出流,再关闭socket 对象本身3.(ServerSocket 对象)对于 ServerSocket,有以下代码ServerSocket ss=new ServerSocket(9000);以下说法正确的是:A这句代码创建了一个ServerSocket 对象的同时,把该对象绑定到本机上的 9000 端口。B 对ss 调用 getLocalPort 方法,返回值为 9000C 对ss 调用getInputStream 和getOutputStream 方法可以获得输入输出流,从而与客户端通信4.填空一般
3、而言,创建一个Tcp 客户端,有以下几步:1)创建一个 Socket 对象2)调用_方法和 _方法获得输入输出流3)利用输入输出流,读写数据4)_创建一个多线程的 Tcp 服务器,有以下几步1)创建_对象2)调用该对象的 _方法,以获取客户端的连接。该方法返回一个 _对象。3)利用返回的对象,创建一个新线程4)在新线程中完成读写操作5)在新线程中调用 _对象的 close 方法5.(TCP 编程)根据提示,把下面的代码补充完整/Client.javaimport .*;import java.io.*;public class Clientpublic static void main(Str
4、ing args)throws ExceptionSocket s;/创建一个到“127.0.0.1:9000”的Tcp 连接/向Tcp 连接输出“Hello World”并换行/从服务器端读入一行文本,并打印出来s.close();/Server.javaimport java.io.*;import .*;public class Serverpublic static void main(String args)throws Exception/创建一个服务器端口对象/获得一个客户的连接/读入一行文本/在读入的文本后面加上+“From Server”/把处理之后的文本向客户端输出并换行/
5、关闭连接6.(UDP)在UDP 编程中,表示 UDP 端口的是 _类,其中发送和接受的方法分别为 _方法和 _方法;表示 UDP 数据包的类是 _类。7.(URL 编程)URL 编程中,要用到 URL 类的_方法获得一个 url 连接,该方法返回值为 _类型。可以对返回的对象调用_方法,用来为读取 url 上的数据做准备。8.*(TCP,IO)有如下代码/Client.javaimport .*;import java.io.*;public class Client public static void main(String args)throws Exception Socket s=n
6、ew Socket(127.0.0.1,9000);PrintWriter pw=new PrintWriter(s.getOutputStream();pw.println(Hello);s.close();/Server.javaimport .*;import java.io.*;public class Server public static void main(String args)throws ExceptionServerSocket ss=new ServerSocket(9000);Socket s=ss.accept();BufferedReader br=new Bu
7、fferedReader(new InputStreamReader(s.getInputStream();System.out.println(br.readLine();s.close();先运行 Server,再运行 Client,在Server 输出的结果是什么?为什么?如何修改?9.*(TCP,IO)有如下代码:/Client.javaimport java.io.*;import .*;public class Client public static void main(String args)throws Exception Socket s=new Socket(127.0.
8、0.1,9000);PrintWriter pw=new PrintWriter(s.getOutputStream();pw.print(Hello from client);BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream();System.out.println(br.readLine();s.close();/Server.javaimport java.io.*;import .*;public class Server public static void main(String
9、args)throws ExceptionServerSocket ss=new ServerSocket(9000);Socket s=ss.accept();BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream();System.out.println(br.readLine();PrintWriter pw=new PrintWriter(s.getOutputStream();pw.print(Hello from server);s.close();对这两个程序,先运行Server,在运
10、行 Client,以下说法正确的是:A 编译不通过B 编译通过,运行时异常C编译运行都没错,但是程序没有任何输出,因为通讯时使用了print方法而不是println 方法。D 编译运行都没错,客户端输出Hello from server,服务器端输出 Hellofromclient10.*(UDP)把下面代码补充完整。/UDPServer.javaimport java.io.*;import .*;public class UdpServer public static void main(String args)throws Exception DatagramSocket socket=
11、new DatagramSocket(9000);byte bs=new byte128;DatagramPacket packet;/创建一个 packet,用bs 数组来接受数据_/接收客户端发送的信息_for(int i=0;i30;i+)bs=Hello From Server.getBytes();DatagramPacket newPacket=new DatagramPacket(bs,0,bs.length,packet.getAddress(),packet.getPort();/向客户端发送数据_socket.close();/Clientimport java.io.*;
12、import .*;public class UdpClient public static void main(String args)throws ExceptionDatagramSocket socket=new DatagramSocket();byte data=Hello.getBytes();DatagramPacket packet=new DatagramPacket(data,0,data.length,new InetSocketAddress(127.0.0.1,9000);/发送数据包_data=new byte128;for(int i=0;i30;i+)/以da
13、ta 作为媒介,创建一个新数据包_/接受数据包_String str=new String(packet.getData(),packet.getOffset(),packet.getLength();System.out.println(str);socket.close();11.*(多线程,TCP)创建一个多线程的 TCP 服务器以及客户端,完成下面的功能:读入客户端发给服务端的字符串,然后把所有字母转成大写之后,再发送给客户端。12.*(多线程 TCP)创建一个多线程的 TCP 服务器以及客户端,完成下面的功能:服务端:读入客户端发给服务器端的字符串,在服务器当前目录下查找以该字符串作为文件名的文件,并把该文件内容发送给客户端。客户端:发送给服务器端一个字符串filename 表示服务器上的一个文件,然后从服务器端读入文件内容,并起名叫server_filename 保存在当前目录。例如,假设服务器当前目录下有个myphoto.jpg 文件,则客户端发送字符串“myphoto.jpg”给服务器端,然后从服务器端读入myphoto.jpg 文件的内容,并起名为server_myphoto.jpg保存在客户端当前目录下
限制150内