计算机网络编程复习题docx.docx
- 文档编号:763684
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:8
- 大小:21.44KB
计算机网络编程复习题docx.docx
《计算机网络编程复习题docx.docx》由会员分享,可在线阅读,更多相关《计算机网络编程复习题docx.docx(8页珍藏版)》请在冰豆网上搜索。
计算机网络编程复习题docx
计算机网络编程复习题
一、基础部分
1、网络通信程序使用的通信模型主要有:
C/S模型、B/S模型和P2P模型。
2、C/S模型将一个网络事务处为两:
一是客户端(Client),它为用户提供向网络请求服务的接口;另一是服务器端(Server),它负责接受用户对服务的请求,并将这些服务透明地提供给用户。
3、浏览器/服务器(或者:
Browse/Server,B/S)模型是一种基于Web的通信模型,该模型使用HTTP协议进行通信。
4、将十进制形式的IP地址:
“123.123.123.123”转换为IPAddress实例的语句:
IPAddressremoteIP=IPAddress.Parse("123.123.123.123")。
5、若想让线程Thread1暂停1秒,可以在线程Thread1中执行语句:
Thread.Sleep(lOOO);。
如果线程Thread1在执行过程中需要等待另一个线程Thread2结束后,才可以继续执行,其等待时间不超过2秒,则需要在线程Thread1屮加入语句:
Thread2.Join(2000);o
6、后台线程与前台线程的区别是后台线程不会影响进程终止。
通过将线程对象的IsBackground属性设置为me,使得其变为后台线程。
默认情况下,属于托管线程池的线程都是后台线程,通过创建并启动新的Thread对象而生成的线程都是前台线程。
7、流(stream)是对以字节为单位吊行传输的数据的一种抽彖表示,它提供了三种基本操作:
(1)写入:
将数据从内存缓冲区传输到外部源。
(2)读取:
将数据从外部源传输到内存缓冲区。
(3)查找:
重新设置流的当前位置,以便随机读写。
8、默认情况下,.NETFramework不允许在一个线程中直接操作另一个线程中的控件。
解决这个问题的一种方法是:
使用委托(delegate)来操作另一个线程中的控件。
9、TcpListener类用于侦听和接受传入的连接请求。
TcpClient类用于提供本地主机和远程主机的连接信息。
服务器端通过TcpListener对彖的AcceptTcpClient方法而得到TcpClient对象,所以服务器端不需要使用TcpClient类的构造函数来创建TcpClient。
10、解决TCP协议消息边界问题的方法有:
发送固定长度的消息、将消息长度与消息一起发送以及使用特殊标隔消息等三种。
11、编写UDP应用程序时有两种技术,一种是直接使用Socket类,另一种是使用UdpClient类。
12、使用UdpClient编写发送和接收UDP数据报的应用程序吋,建立默认远程主机的
方式有两种:
一种是使用远程主机名和端口号作为参数创建UdpClient类的实例,另一种是先创建不带参数的UdpClient类的实例,然后再调用Connection方法指定默认远程主机。
13、UdpClient类提供了JoinMulticastGroup方法,用于将UdpClient加入到指定的多播组中。
若要从多播组中退!
11,调用UdpClient的DropMulticastGroup方法。
14、HttpWebRequest是针对HTTP的特定实现,它的基类是WebRequest抽象类。
它对HTTP进行了完整的封装。
15、接收邮件时,客户与POP3服务器Z间的通信历经3个状态:
授权状态、操作状态和更新状态。
16、FTP常用的两种数据传输方式:
ASCII传输方式、二进制数据传输方式。
FTP文件的传输模式有:
主动模式(Port模式)和被动模式(Passive模式)。
17、FtpWebResponse类用于封装FTP服务器对请求的响应。
该对彖提供操作的状态以及从服务器上下载的所有数据。
通过调用该对象的GetResponse方法获取来FTP服务器的响应。
二、简答部分
1、试举例说明在程序中使用委托的基本步骤。
答:
委托的使用要遵循以下的顺序:
定义、声明、实例化、作为参数传递给方法、使用。
(1)定义委托使用关键字delegatee比如:
delegatevoidSomeDelegate(type1paral,type2para2,...);
(2)声明委托:
SomeDelegatedelegate;
(3)实例化:
delegate=newSomeDelegate(obj.InstanceMethod);其中obj是对象,InstanceMethod是它的实例方法。
(4)用作某种方法的参数:
someMethod(delegate);
(5)在此方法的实现代码中使用:
privatevoidsomeMethod(SomeDelegatesomeDelegate)
〃使用委托
2、什么编码和解码?
为什么在通过网络传输数据时需要进行编码和解码?
现有一个Unicode字符串mystring,欲将其编码后的字节序列存储到字节数组buff中,请写出相应的程序段。
答:
编码:
是指将一组字符转换为一个字节序列的过程。
解码:
将一个编码字节序列转换为一组字符的过程。
因为通过网络传递的数据必须是字节序列。
所以在发送数据前,需要通过编码把字符序列转换为字节序列后再发送;从网络上接收到数据Z后,需要通过解码把字节序列转换为字符组后再显示。
比如:
byte)]buff=Encoding.Unicode.GetBytes(mystring);
3、简述使用套接字类Socket编写以同步方式工作的TCP服务器端程序的一般步骤。
答:
同步TCP编写服务器端程序的一般步骤为:
1)创建一个包含采用的网络类型、数据传输类型和协议类型的监听套接字对象,使用该套接字对象的Bind方法将该监听套接字对象与服务器的IP地址和端口号绑定。
2)调用上一步创建的监听套接字对象的Listen方法,使得服务器在指定的IP地址和端口上进行监听,以便接受客户端连接请求。
3)调用监听套接字对象的Accept方法等待客户端连接请求到达,一旦接受了客户端的连接请求,就根据客户端发送的连接信息创建与该客户端对应的Socket对象(连接套接字对象)。
4)使
用连接套接字对象分别与每个连接的客户进行数据传输。
5)
据传送信息情况确定是否关闭与客户端通信的连接套接字对彖,以释放TCP连接。
4、简述使用TcpListen和TcpClient编写基于TCP的服务器端程序的一般步骤。
答:
使用TcpListen和TcpClient编写基于TCP的服务器端程序一般步骤为:
1)创建一个TcpListener对象,然后调用该对象的Start方法在指定的端口进行监听。
2)在单独的线程中,循环调用TcpListener对象的AcceptTcpClient方法接受客户端的连接请求,并根据该方法的返回的结果得到与该客户端对应的TcpClient对象。
3)每得到一个新的TcpClient对象,就创建一个与该客户对应的线程,在线程中与对应的客户进行通信。
4)根据传送信息的情况确定是否关闭与客户的连接。
5、简述使用对套接字封装后的TcpClient类,编写基于TCP的客户端程序的一般步骤。
答:
使用对套接字封装后的TcpClient类,编写基于TCP的客户端程序的一般步骤如下:
1)利用TcpClient的构造函数创建一个TcpClient对象。
2)使用TcpClient对象的Connect方法与服务器建立连接。
3)利用TcpClient对彖的GetStream方法得到网络流,然后利用该网络流与服务器进行数据传输。
4)创
建一个线稈监听指定的端口,循环接收并处理服务器发送过来的信息。
5)完
成工作后,向服务器发送关闭信息,并关闭与服务器的连接。
6、利用TCP开发应用程序时,.NET框架提供了哪两种工作方式?
这两种工作方式是如何工作的?
答:
利用TCP开发应用程序时,.NET框架提供同步和异步两种工作方式。
()
其屮:
1)同步工作方式指利用TCP编写的程序执行到发送、接收或监听语句吋,在未完成工作前不再继续往下执行,即处于阻塞状态,直到该语句完成相应的工作后才继续执行下一条语句。
2)异步工作方式是指程序执行到发送、接收或监听语句时,不论工作是否完成,都会继续往下执行。
7、基于事件的异步设计模式有什么特点?
答:
基于事件的界步设计模式有以下特点:
1)用事件驱动模型实现异步方法,适用于绝大多数异步应用,降低了异步编程的复杂性。
2)具有多线程应用程序的优点,同时隐匿了多线程设计中固有的许多复杂问题。
3)在“后台”执行耗时任务(例如下载和数据库操作),但不会屮断应用程序。
当
后台任务完成吋,就自动触发对应的事件。
4)可以同时执行多个操作,毎个操作完成时都会接到通知。
5)后台等待资源时,不会停止(“挂起”)应用程序。
6)使
用熟悉的事件和委托模型与挂起的异步操作通信。
7)
持基于事件的异步模式的类一般都有一个或多个后缀为“Async”的方法。
该类还可能有一个后缀为“CompletecT的事件,以及后缀为“AsyncCancel”(或只有CancelAsync)的方法。
8、什么是网络流?
网络流的基本操作有哪些?
答:
网络流是指数据在网络的各个位置Z间以连续的字节形式传输。
它用于通过网络套接字发送和接收数据,只用于面向连接的数据传输。
其基木操作主要有:
1)写入操作。
指从来源端内存缓冲区到网络上的数据传输。
2)读取操作。
从网络上到接收端内存缓冲区(如字节数组)的数据传输。
3)关闭操作。
关闭网络流对象。
9、通过实例简要回答利用UdpClient加入和退出组播组的步骤。
设使用的UdpClient对象名字为:
multicast,多播组地址为:
224.100.100.100,端口号为8888。
答:
(1)加入组播组的步骤:
创建UdpClient对象,然后使用JoinMulticastGroup方法将UdpClient对象和TTL一起加入组播组。
例如:
〃创建UdpClient的实例并设置使用的本地端口号
UdpClientmulticast=newUdpClient(8888);multicast.JoinMulticastGroup(IPAddress.Parse("224.100.100.100"));
或者:
UdpClientmulticast=newUdpClient(8888);multicast.JoinMulticastGroup(IPAddress.Parse("224.100.100.100"),50);
〃其中50为TTL值。
(2)退出组播组的步骤:
利用UdpClient的DropMulticastGroup方法,可以退出组播组。
参数中指岀要退岀的多路广播组的IPAddress实例。
UdpClient从组中收回之后,将不能再接收发送到该组的数据报。
例如:
multicast.DropMulticastGroup(IPAddress.Parse("224.100.100.100"));
10、简述被动模式下,FTP客户端和FTP服务器的工作流程。
答:
表示服务器被动接受客户端连接请求,即控制连接请求和数据连接请求都由客户端发起。
其工作流程如下:
1)F
TP客户端先随机开启一个端口N向服务器的21号端口发起控制连接,然后向服务器发送PASV命令;
2)服务器收到此命令后,会用一个新的端口P(P>1024)进行监听,同时将使用的IP地址和该端口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 编程 复习题 docx