预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第10章网络程序设计 【1】java提供了哪几种网络通信模式? [解答]:基于TCP/IP协议的面向连接的通信模式,基于UDP协议的面向无连接的通信模式。 【2】java的套接字网络通信方式分为哪几种? [解答]: 基于TCP/IP协议:客户端套接字,服务器端套接字。 基于UDP协议:用户数据报套接字,广播数据报套接字。 【3】什么是socket,怎样建立socket连接?建立连接时,客户端和服务器端有什么不同? [解答]: Socket就是套接字,是IP地址和端口号的组合。 当两个网络程序需要通信时,它们可以通过使用Socket类建立套接字连接。 服务器端建立Socket以后,要执行一个等待的方法,以方便客户端来连接。 客户端建立Socket以后即与服务器端进行连接,成功握手以后,双方产生同样的Socket对象。 【4】请列举常用的协议及其端口号。 [解答]: ftp21/tcp telnet23/tcp smtp25/tcp http80/tcp pop3110/tcp snmp161/udp https443/tcp https443/udp pop3110/tcp 【5】试描述用Socket建立连接的基本程序框架。 [解答]: 客户端建立套接字对象,指定服务器IP和端口号。 服务器端建立套接字,并指定端口号。 服务器端监听本机的端口的状态:执行accept()方法。 客户端程序在对象产生以后以及,服务器端的程序监听到有连接以后都会产生一个Socket类的实例。 对这两个实例中对应的输入流和输出流进行操作,即完成通信过程。 【6】说明客户端如何与服务器端进行连接。 [解答]: TCP/IP的方式是:客户端产生Socket对象的同时产生与对应端口号的服务器连接的动作。 UDP数据报的方式是:客户端建立DatagramSocket对象,建立报文DatagramPacket对象,并指定发送的IP地址,调用socket对象的send方法进行连接并发送数据。 【7】说明客户端如何从服务器读一行文本。 [解答]: TCP/IP的方式是:客户端与服务器端成功握手以后,从Socket中得到数据输入流并用相应的包装器进行包装,以输入流中相应的read方法来读取一行的文本。 UDP数据报的方式是:建立数据报的DatagramSocket对象以后,调用DatagramSocket对象的receive方法来等待服务器的数据到来,接收到数据以后用DatagramPacket对象的getData方法来将接收到的数据提取出来。 【8】说明服务器如何将数据发送到客户端。 [解答]: TCP/IP的方式是:客户端与服务器端成功握手以后,从Socket中得到数据输出流并用相应的包装器进行包装,用并向客户端调用相应的write方法来发送数据。 UDP数据报的方式是:创建数据报文DatagramSocket对象,调用DatagramSocket对象的receive方法来等待客户端的请求到来。从到来的DatagramPacket包中得到地址和端口号,建立数据报文对象,发送数据报。 【9】采用套接字的连接方式编写一个程序,允许客户向服务器提出一个名字,如果这个文件存在,就把文件内容发送给客户,否则回答文件不存在。 [解答]: //客户端 importjava.awt.Button; importjava.awt.FlowLayout; importjava.awt.TextField; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjava.awt.event.WindowAdapter; importjava.awt.event.WindowEvent; importjava.io.BufferedInputStream; importjava.io.DataInputStream; importjava.io.DataOutputStream; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.InputStream; importjava.net.Socket; importjavax.swing.JFrame; publicclassTranFileClientextendsJFrameimplementsActionListener{ Buttonbtn; TextFieldtf; publicTranFileClient(){ //布局 super("要接收的文件名"); setBounds(400