C#网络协议题库-简答
1. 简答什么是分散式、集中式和分布式通信模型。
答:分散式指用户只负责管理自己的计算机系统,各自独立的系统之间没有资源或信息的交换或共享。集中式指用一台主计算机保存一个企业组织的全部数据,而用户则通过终端连接到这台主计算机系统并与之通信,从而达到访问数据的目的。分布式是分散式系统和集中式系统的混合,它由一个又一个连接起来的独立计算机组成。
2.TCP/IP四层模型中各层的主要功能是什么?
答:应用层:负责实现一切与应用程序相关的功能,对应OSI参考模型的上三层。
传输层:负责提供可靠的传输服务,对应OSI参考模型的第四层。
网际层:负责网络间的寻址,数据传输,对应OSI参考模型的第三层。
网络接口层:负责实际数据的传输,对应OSI参考模型的下两层。
3. C#中线程优先级有多少种,分别是啥?创建进程时,如果不指定其优先级,则系统默认为什么?
答:有5个不同的优先级,由高到低分别是Highest、AboveNormal、Normal、BelowNormal、Lowest。创建进程时,如果不指定其优先级,则系统默认为Normal。
4.进程和线程有什么区别?
答:一个完整的进程拥有自己独立的内存空间和数据,但是线程是共享进程的内存空间和数据。进程是应用程序的执行实力,线程是执行进程的路径,一个进程可以包含多个线程。
5.在Process类中,Kill方法和CloseMainWindow方法有什么不同?
答:Kill方法用于强行终止进程,而CloseMainWindow只是“请求”终止进程。Kill方法会导致进程非正常终止,因而只在必要时才使用该方法。CloseMainWindow方法使进程能够有序终止并关闭所有窗口。如果调用CloseMainWinodw方法失败,则可以使用Kill方法终止进程。
1.网卡的主要工作原理是什么?
答:整理计算机上发往网线上的数据,并将数据分解为适当大小的数据包之后向网络上上传。
2.什么是网络协议?
答:网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器等)之间通信规则的集合,他定义了通信时信息必须采取的格式以及这些格式的含义。
3. 识别远程主机的信息由哪两部分组成?分别的作用?
答:识别远程主机的信息由主机标识和端口号组成。主机标识用于识别与本地主机通信的是哪台远程主机,端口号用于识别和远程主机的哪个进程通信。
4. 什么叫编码?什么叫解码?为什么要对字符进行编码和解码?
答:将字符列转换为字符序列的过程称为编码。接收方将字节序列再转换为字符序列,这种过程称为解码。对字符进行编码和解码的原因是:在网络通信中,很多情况下通信双方传达的都是字符信息,但字符信息并不能直接从网路的一端传递到另一端,这些字符信息首先需要被转换成一个字节序列后才能在网络中传输。
5. IP地址在127.0.0.1~127.1.1.1范围中,其作用是什么?
答:专门用于回路测试。
socket通信为什么要指定端口1.说明面向套接字服务端编程的基本步骤。
1)创建一个包含采用的网络类型、书记传输类型和协议类型的本地套接字对象,并将其与服务器的IP 地址和端口号绑定。这个过程可以通过Socket类.
2)在指定的端口进行监听,一边接受客户端连接请求。
3)一点接受了客户端的链接请求,就根据客户端发送的连接信息创建与该客户端对应的Socket对象4)根据创建的Socket对象,分别与每个连接的客户进行数据传输。
5)根据传送信息情况确定是否关闭与对方的连接。
2.既然字节数组也在内存中存储,为什么还要引入内存流的概念?
答:这是因为内存流和字节数组虽然都位于程序缓冲区,但是具有不同的特性。内存流相对于字节数组而言,具有流特有的特性,并且容量自动增长。
3.请描述使用NetworkStream对象时,需要注意的事项
答:通过DataAvailable属性,可以迅速查看在缓冲区中是否数据等待读出
网络流没有当前位置的概念,因此它不支持对数据流的查和随机访问,NetworkStream对象的CanSeek 属性始终返回false,读取Position属性和调用Seek方法时,都会引发NotSupportedException异常
网络数据传输完成后,不要忘记用Close方法关闭NetworkStream对象
4.StreamReader类和SteamWriter类读写的特点?
答:StreamReader类主要是完成以一种特定的编码从流中读取字符的功能。对文本数据的读操作。SteamWriter类主要以特定的编码想流中写入数据,一本对于文本的写操作。
1.TCP的主要特点是什么?
(1)是面向连接的传输协议
(2)每个TCP连接只能有两个端点,而且只能一对一通信,不能一点对多点直接通信
(3)通过TCP连接传送的数据,能保证数据无差错、不丢失、不重复地准确到达接收方,并且保证各数据到达的顺序与数据发出的顺序相同
(4)数据以字节的方式传输(5)传输的数据无消息边界
2.什么是基于事件的异步设计模式,这种设计模式有哪些特点p129
基于事件的异步设计模式用事件驱动模型实现异步方法,这种模式用单独的线程在后台执行耗时的任务,当后台任务完成时,就自动触发对应的事件。该模式既具有多线程应用程序的特点,同时也隐匿了多线程
设计中的许多复杂问题
3简述解决tcp消息边界问题的三种方法及其特点
答:1)发送固定长度的消息(适用于消息长度固定的场合)
2)将消息长度与消息一同发送(一般在每次发送的消息前面用四个字节表明本次消息的长度,然后将包含消息长度的消息发送到对方,对方接收到消息后,首先从前四个字节获取消
息长度,然后根据消息长度接收对方发送的数据,这种方法适用于任何场合)
3 )使用特殊标记分隔消息(适用于消息中不包含特殊标记的场合)
4 .简述编写客户端程序的一般步骤
1 )利用tcpclient的构造函数创建一个tcpclient对象。
2 )使用connect方法与服务器建立连接。
3 )利用tcpclient对象的getstream方法得到网络流,然后利用该网络流与服务器进行数据传输。
4 )创建一个线程监听指定的端口,循环接收并处理服务器发送过来的信息。
5)完成工作后,向服务器发送关闭信息,并关闭与服务器的连接。
5.简述.NET框架提供了那两种工作方式?
1)同步工作方式:是指利用TCP编写的程序执行到发送、接收或监听语句时,在未完成工
作前不再继续往下执行,直到该语句完成相应的工作后才继续执行下一条语句。
2)异步工作方式:是指程序处于执行到发送、接收或监听语句时不论工作是否完成,都会继续往下执行。
6.简述编写服务器端程序的一般步骤
1) 创建一个TcpListener对象,然后调用该对象的Start方法在指定的端口进行监听。
2) 在单独的线程中,循环调用TcpListener对象的AcceptTcpClient方法接受客户端的连接请求,并根据该方法的返回的结果得到与该客户端对应的TcpClient对象。
3) 每得到一个新的TcpClient对象,就创建一个与该客户对应的线程,在线程中与对应的客户进行通信。
4) 根据传送信息的情况确定是否关闭与客户的连接。
1.UDP的主要作用是?
UDP的主要作用是将网络数据流量压缩成数据报的形式,每一个数据报用8个字节描述报头信息,剩余字节包含具体的传输数据。
2.什么是广播?
答:所谓广播,就是指同时向子网中的多台计算机发送消息,并且所有子网中的计算机都可以接收发送方发来的消息。
3.列出5种UPClient类的常用方法或属性并说明功能。
答:(1)Connect方法。建立默认远程主机。(2)Send方法。发送数据报。
(3)Receive方法。接收数据报。(4)BeginSend方法。开始从连接的socket中异步发送数据报。
(5)BeginReceive方法。开始从连接的socket中异步接收数据报。
4.UDP与TCP有什么区别?
UDP速度比TCP快UDP有消息边界UDP可以一对多传输
UDP可靠性不如TCP UDP不能保证有序传输
5.利用广播实现发功能实例中,使用UdcpClient类实现广播发和实现单播通信的程序编写方法十分相似,不同点在于?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论