1、1. 简答什么是分散式、集中式和分布式通信模型。答:分散式指用户只负责管理自己的计算机系统,各自独立的系统之间没有资源或信息的交换或共享。 集中式指用一台主计算机保存一个企业组织的全部数据,而用 户则通过终端连接到这台主计算机系统并与之通信,从而达到访问数据的目的。分布式是分散式系统和集中式系 统的混合,它由一个又一个连接起来的独立计算机组成。2.TCP/IP 四层模型中各层的主要功能是什么?答:应用层:负责实现一切与应用程序相关的功能, 对应 OSI 参考模型的上三层。传输层:负责提供可靠的传输服务,对应 OSI 参考模型的第四层。网际层:负责网络间的寻址,数据 传输 ,对应 OSI 参考模
2、型的第三层。网络接口层:负责实际数据的传输,对应 OSI 参考模型的下两层。3. C#中线程优先级有多少种,分别是啥?创建进程时,如果不指定其优先级, 则系统默认为什么?答:有 5 个不同的优先级,由高到低分别是 Highest、AboveNormal、Normal、BelowNormal、Lowest。创建进程时,如果不指定其 优先级, 则系 统默认为 Normal。4.进程和线程有什么区别?答:一个完整的进程拥有自己独立的内存空间和数据,但是线程是共享进程的内存空间和数据。 进程是应用程序的执行实力,线程是执行进 程的路径,一个 进程可以包含多个 线程。5.在 Process 类中,Kil
3、l 方法和 CloseMainWindow 方法有什么不同?答:Kill 方法用于强行终止进程,而 CloseMainWindow 只是“ 请求”终止进程。Kill 方法会导致进程非正常终止,因而只在必要时才使用该方法。CloseMainWindow 方法使进程能 够有序终止并关闭所有窗口。如果 调用 CloseMainWinodw 方法失败, 则可以使用 Kill 方法终止进程。1. 网卡的主要工作原理是什么? 答:整理计算机上发往网线上的数据,并将数据分解 为适当大小的数据包之后向网络上上传。2.什么是网络协议? 答:网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器等)之间通信
4、规则的集合,他定义了通信时信息必须采取的格式以及这些格式的含义。3. 识别远程主机的信息由哪两部分组成?分别的作用? 答:识别远程主机的信息由主机标识和端口号组成。主机标识用于识别与本地主机通信的是哪台远程主机,端口号用于识别和远程主机的哪个进程通信。4. 什么叫编码?什么叫解码?为什么要对字符进行编码和解码? 答:将字符列转换为字符序列的过程称为编码。接收方将字节序列再转换为字符序列, 这种过程称为解码。对字符进行编码和解码的原因是:在网络通信中,很多情况下通信双方传达的都是字符信息,但字符信息并不能直接从网路的一端传递到另一端,这些字符信息首先需要被转换成一个字节序列后才能在网络中传输。5
5、. IP 地址在 127.0.0.1127.1.1.1 范围中,其作用是什么? 答:专门用于回路测试。1.说明面向套接字服务端编程的基本步骤。1) 创建一个包含采用的网络类型、书记传输类型和协议类型的本地套接字对象,并将其与服 务器的 IP 地址和端口号绑定。这个过程可以通 过 Socket 类.2) 在指定的端口进行监听,一边 接受客户端连接请求。3) 一点接受了客户端的链接请求,就根据客户端发送的连接信息创建与该客户端对应的 Socket 对象4) 根据创建的 Socket 对象,分别与每个连接的客户进行数据传输。5) 根据传送信息情况确定是否关闭与对方的连接。2.既然字节数组也在内存中存
6、储,为什么还要引入内存流的概念?答:这是因为内存流和字节数组虽然都位于程序缓冲区,但是具有不同的特性。内存流相对于字节数组而言,具有流特有的特性,并且容量自动 增长。3.请描述使用 NetworkStream 对象时,需要注意的事项答:通过 DataAvailable 属性,可以迅速查看在缓冲区中是否数据等待读出网络流没有当前位置的概念,因此它不支持对数据流的查找和随机访问, NetworkStream 对象的 CanSeek 属性始终返回 false,读取 Position 属性和调用 Seek 方法时,都会引发 NotSupportedException 异常网络数据传输完成后,不要忘 记
7、用 Close 方法关闭 NetworkStream 对象4. StreamReader 类和 SteamWriter 类读写的特点?答:StreamReader 类主要是完成以一种特定的 编码从流中读取字符的功能。对文本数据的读操作。SteamWriter 类主要以特定的 编码 想流中写入数据,一本对于文本的写操作。1.TCP 的主要特点是什么?(1)是面向连接的传输协议(2)每个 TCP 连接只能有两个端点,而且只能一对一通信,不能一点对多点直接通信(3)通过 TCP 连接传送的数据,能保证数据无差错、不丢失、不重复地准确到达接收方, 并且保证各数据到达的顺序与数据发出的顺序相同(4)数据
8、以字节的方式传输 (5)传输的数据无消息边界2.什么是基于事件的异步设计模式, 这种设计模式有哪些特点 p129基于事件的异步设计模式用事件驱动模型实现异步方法,这种模式用单独的线程在后台执行耗时的任务,当后台任务完成时,就自动触发对应 的事件。 该模式既具有多线程应 用程序的特点,同时也隐匿了多线程设计中的许多复杂问题3 简述解决 tcp 消息边界问题 的三种方法及其特点答:1) 发送固定长度的消息(适用于消息长度固定的场合)2) 将消息长度与消息一同发送(一般在每次发送的消息前面用四个字节表明本次消息的 长度,然后将包含消息长度的消息发送到对方,对方接收到消息后,首先从前四个字节获取消息长
9、度,然后根据消息长度接收对方发送的数据, 这种方法适用于任何 场合)3 )使用特殊标记分隔消息(适用于消息中不包含特殊标记的场合)4 .简述编写客户端程序的一般步骤1 )利用 tcpclient 的构造函数创建一个 tcpclient 对象。 2 )使用 connect 方法与服务器建立 连接。3 )利用 tcpclient 对象的 getstream 方法得到网络流,然后利用该网络流与服务器进行数据传输。4 )创建一个线程监听指定的端口,循 环接收并处理服务器发送过来的信息。5) 完成工作后,向服务器发送关 闭信息,并关 闭与服务器的连接。5.简述.NET 框架提供了那两种工作方式?1)同步
10、工作方式:是指利用 TCP 编写的程序执行到发送、接收或监听语句时,在未完成工作前不再继续往下执行,直到该语 句完成相应的工作后才 继续执行下一条语句。2)异步工作方式:是指程序处于执行到发送、接收或监听语句时不论工作是否完成,都会 继续往下执行。6.简述编写服务器端程序的一般步骤1) 创 建一个 TcpListener 对象,然后调用该对象的 Start 方法在指定的端口进行监听。 2) 在 单独的线程中,循环调用 TcpListener 对象的 AcceptTcpClient 方法接受客户端的连接请求,并根据该方法的返回的结果得到与该客户端对应的 TcpClient 对象。 3) 每 得到
11、一个新的 TcpClient 对象,就 创建一个与该客户对应的线程,在线程中与对应的客户进行通信。 4) 根 据传送信息的情况确定是否关 闭与客户的连接。1.UDP 的主要作用是?UDP 的主要作用是将网络数据流量压缩成数据报的形式,每一个数据报用 8 个字节描述报头信息,剩余字节包含具体的传输数据。2.什么是广播?答:所谓广播,就是指同 时向子网中的多台 计算机发送消息,并且所有子网中的计算机都可以接收发送方发来的消息。3.列出 5 种 UPClient 类的常用方法或属性并说明功能。答:(1)Connect 方法。建立默认远程主机。 (2)Send 方法。发送数据报。(3)Receive
12、方法。接收数据报。 (4)BeginSend 方法。开始从连接的 socket 中异步发送数据报。(5)BeginReceive 方法。开始从连接的 socket 中异步接收数据报。4.UDP 与 TCP 有什么区别?UDP 速度比 TCP 快 UDP 有消息边界 UDP 可以一对多传输UDP 可靠性不如 TCP UDP 不能保证有序传输5.利用广播实现群发功能实例中,使用 UdcpClient 类实现 广播群发和实现单播通信的程序编写方法十分相似,不同点在于?在发送广播消息时,指定的 远 程主机地址为广播地址,而 发送 单播消息时,远程主机地址为接受数据报的某个特定主机的 IP 地址。6.网
13、络会议程序为什么使用组播技术,而不用 单播技术或广播技 术?答:如果采用单播方式, 则发送效率低,不可取;如果采用广播方式,则达不到区分特定数据接收对象的效果,也不可取;而采用组播方式,既可以实现一次向所有目标节点发送数据,也可以达到只对特定对象才能接收的目的。1.FTP 的主要功能是什么?(1).提供文件的共享,包括程序文件和数据文件 (2)支持 间接使用远程计算机(3)使用户不因各类主机文件存储器系统的差异而受影响 (4)使用 TCP 提供可靠且有效的传输.2. FTP 提供了两种文件传输模式, 请写出两种模式相同点和不同点。主动模式是从服务器向客户端发起数据连接请求,被动模式是客户端向服
14、务器发起数据连接请求。两者的共同点:服务器都使用 21 端口进行用户验证和管理。两者的差别:传送文件数据的方式不懂,主 动模式的 FTP 服务器数据端口固定在 20,而被 动模式的 FTP 服务器数据端口在 1025-65535 之间随机产生。3.文件传输命令包括哪些,它 们的功能是什么?RETR:请求服务器将指定路径内的文件复制到客户端,也即下 载指定的文件STOR:上 传一个指定的文件,并将其储存在指定的位置。如果文件已存在,原文件将被覆盖。如果文件不存在,即创 建新文件4.FtpWebResquest 和 FtpWebResponse 的作用是什么?FtpWebResquest 是用于实
15、现文件传输协议客户端 FtpWebResponse 是封装 FTP 服务器对请求的响应5.GetSponse 方法建立控制连接,但是它 还可能同时创建数据连接,收到响 应之前一直处于阻塞状态,若要防止阻塞该如何操作?可通过调用异步的 BeginGetResponse 方法和 EndGetResponse 方法替代同步的 GetSponse。6.请简述 FTP 命令中 PORT 命令的功能。该命令告诉 FTP 服务器,客户端监听的端口号是 address,让 FTP 服务器采用主动模式连接客户端1.简要说明下载文件时如何实现断点续传?答案:(1) 利用 HttpWebResponse 的 Con
16、tentLength 属性获取下载文件的总长度。 (2) 利用 HttpWebRequest 的 AddRange 方法指定下载的文件数据范围。编写代码实现断点续传时,只需要记住已经成功下载的字节数,当需要从断点 处继续下载时,根据已 经 下载的内容,重新指定下载的范围即可。2.列出 Webrequest 类的常用方法,并解释说明答案:(1)getrequeststream,返回将数据写入 Internet 资源的 stream,提供对 stream 的同步访问(2)creat,使用 requestUristring 参数创建一个 Uri 实例,并将该实例传递给新的 webrequest。该方
17、法将运行时确定的 webrequest 类的子类作为与 requestUri 最接近的注册匹配项。3.HTTP 的特点。答:(1)HTTP 以 TCP 方式工作。HTTP 客户端首先与服务器建立 TCP 连接,然后客户端通过套接字发送HTTP 请求,并通 过套接字接收 HTTP 响应。(2)HTTP 是无状态的。客户端 发送一次请求后,服 务器并没有存 储关于客户端的任何状态信息。(3)HTTP 使用元信息作为标头。HTTP 通过添加标头的方式向服务器提供本次 HTTP 请求的相关信息,即在主要数据前添加一部分信息,称为元信息。4.HTTP/1.1 提供的 8 种 HTTP 请求的方法, 请简
18、述最常用的 2 种以及说明。答:(1)GET 请求。请求获取特定的资源,例如:请求一个 Web 页面。(2)POST 请求。请求向指定资源提交数据进行处理,请求的数据被包含在请求体中。5.请列举三个 HTTP 的常用状态码,并简要说明。答:(1)200OK 找到了该资源,并且一切正常(2)304 NOTMODIFIED 该资源在上次请求之后没有任何的修改, 这通常用于浏览器的缓存机制(3)401 UNAUTHORIZED 客户端无权访问该资源6.简述 POST 方法的主要用途?答:POST 方法主要用于填写 Web 页面表单(Form)中的信息,并将其提交到 Web 服务器。第九章1.与邮件服务器建立连接有哪三个过程?1)与 SMTP 服务器的连接 (2)与 ESMTP 服务器建立连接 (3)断开与服务器的连接2.简述异步接受邮件的过程(1)异步建立连接 (2)异步发送数据 (3)异步接受数据3.简要概述什么是 SMTP?SMTP 是一种提供可靠且有效的电子邮件的传输协议。4.简要概述客户端发送电子邮件的过程。客户端软件将邮件发送到 SMTP 邮件服务器,然后 SMTP 邮件服务器及发送到目标 SMTP 邮件服务器。5.简述邮件发送过程:第一步:客户端先于服务器建立连接 第二步:客户端开始发送邮件的信封 第三步:客户端开始发送邮件数据