收藏 分享(赏)

c#网络编程复习文献.doc

上传人:cjc2202537 文档编号:174845 上传时间:2018-03-23 格式:DOC 页数:14 大小:104.50KB
下载 相关 举报
c#网络编程复习文献.doc_第1页
第1页 / 共14页
c#网络编程复习文献.doc_第2页
第2页 / 共14页
c#网络编程复习文献.doc_第3页
第3页 / 共14页
c#网络编程复习文献.doc_第4页
第4页 / 共14页
c#网络编程复习文献.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、C#网络编程复习文献第一章 概述1. 分散式指用户只负责管理自己的计算机系统,各自独立的系统之间没有资源或信息的交换或共享。集中式指用一台主计算机保存一个企业组织的全部数据,而用户则通过终端连接到这台主计算机系统并与之通信,从而达到访问数据的目的。终端是包含键盘和显示器的端设备,通过通信链路发送和接收数据。分布式是分散式系统和集中式系统的混合,它由一个又一个连接起来的独立计算机组成。企业管理系统就是集中式和分布式综合的一种表芯,所有数据用专用的数据库(SQL Server、 Oracle 或者 DB2)集中存储,属于集中式,而对数据的处理则由各个部门的软件分别控制,属于分布式。2. TCP/I

2、P 网络协议【考点:TCP/IP 分层及其作用】TCP/IP 分四层概念模型:a、 应用层(该层负责应用程序之间的沟通,主要协议有简单邮件传输协议(SMTP) 、文件传输协议(FTP )以及网络远程访问协议(Telnet)等) 【负责实现一切与应用程序相关的功能】 ;b、 传输层(该层提供节点间的数据传送以及应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。主要协议有传输控制协议(TCP) 、用户数据报协议(UDP)等) 【负责提供可靠的传输服务】 ;c、 网际层(该层负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机,但他不检查数据包是否被正确接受。网络协议(

3、IP)即属于该层协议) 【负责网络间的寻址】 ;d、 网络接口层(该层负责接收 IP 数据报并进行传输,从网络上接受物理帧,抽取 IP 数据报转交给下一层,对实际的网络媒体进行管理,定义如何使用实际网络来传送数据)【负责实际数据的传输】 。第二章 进程与线程1.进程与线程【进程:进程是一段静态指令序列(程序)的动态执行过程。 】【线程:一个进程可以划分为若干个独立的执行流,这些独立的执行流称为线程。 】线程分为主线程、辅助线程【进程与线程的区别:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是 CPU 调度和分

4、派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。 】2.进程管理(Process 类):a、确定进程是否响应,是否已经退出; b、获取系统正在进行的进程列表;c、获取个进程的资源占用情况;d、查询本地或远程进程的相关信息等。3.Process 的命名空间:System.Diagnostics;4.Process 类常用的属性和方法:BasePriority 属性

5、PriorityClass 属性:设置或更改进程的优先级,枚举值有 6 个:Idle、Normal、High、AboveNormal 、BelowNormal、RealTime 。ExitCode 属性 :获取关联进程终止时指定的值。ExitTime 属性:获取关联进程推出的时间,该值只有在 HasExited 属性为 True 时才能检测。ID 属性:获取关联进程的唯一标识符。MainModule 属性:获取关联进程的主模版,即加载到特定进程中的.dll 或.exe 文件,一般用该属性查看启动进程的可执行文件的信息,包括莫板块、文件名和模块占用的内存等详细信息。ProcessName 属性:

6、获取该进程的名称,该名称不包括文件扩展名和路径。StartInfo 属性:获取或设置要传递给启动进程的文件名以及启动参数,类似于命令行方式输入的命令和参数。StartTime 属性:获取关联进程启动的时间。Threads 属性:获取在关联进程中运行的一组线程。TotalProcessorTime 属性WorkingSet64 属性:获取进程分配的物理内存量。PeakWorkingSet64 属性:获取进程使用的最大物理内存量。StandardInput 属性:用于写入应用程序的流。StandardOutput 属性:获取用于读取应用程序输出的流。Close 方法:释放与次组件关联的所有资源。C

7、loseMainWindow 方法:通过像主窗口发送关闭消息来关闭具有用户界面的进程。GetProcessById 方法:通过进程 ID 创建新的 Process 组件,并将其与本地计算机上的进程资源关联。GetProcesses 方法:创建新的 Proccess 组件的数组,并将它们与本地家算计上的所有进程资源关联。GetProcessesByName 方法:创建新的 Process 组件的数组,并将它们与本地计算机上运行统一可执行文件的所有进程资源关联。Kill 方法:立即强制终止关联的进程。Refresh 方法:重新获取关联进程信息。Start:启动进程资源并将其与 Process 组件

8、关联。WaitForExit 方法:设置等待关联进程退出的事件,并在该段时间结束前或该进程退出前,阻止当前线程执行。WaitForInputIdle 方法:使 Process 组件等待关联进程进入空闲状态,仅适用于具有用户界面的进程。5.线程管理(Thread 类):命名空间:System.Threading创建一个线程的一般步骤有三步:第一步:编写一个入口函数public void EntryMethod()第二步:创建入口委托ThreadStart entryPoint = new ThreadStart(EntryPointMethod);第三步:创建线程Thread WorkThrea

9、d = new Thread(entryPoint);6、 前台线程:默认情况下,通过创建并启动新的 Thread 对象而生成的线程都是前台线程。后台线程:默认情况下,属于托管线程池的线程(即 IsThreadPoolThread 属性为 true 的线程)都是后台线程。 【考点】前台线程和后台线程的区别是后台线程不会影响进程终止。属于某个进程的所有前台线程都终止后公共语言运行库就会结束该进程而且所有属于该进程的后台线程都会立即停止,而不管后台工作是否完成。Class c1=new Class();Thread myThread=new Thread(c1.Method1);myThread.

10、IsBackground=true;7、 如何在一个线程访问另一个线程?【考点】两种办法:一、使用委托(Delegate)和事件(Event)来完成这个工作;二、利用BackgroundWorker 组件实现这个功能。8、如何实现两个线程同步?【考点】使用同步类:Interlocked(互锁)、Monitor(管程) 和 Mutex(互斥体)。9、集合(Collections):除了 Array 类定义在 System 命名空间中外其他集合类都定义在 System.Collections 命名空间中。10、 Socket.Accept()处理任何传入的请求;Socket.Listen()方法监

11、听客户端连接请求。11/Lock 语句 【一定要将 Object 类型的对象声明为 private,不能将其声明为 public,否则将会使 lock 语句无法控制,从而引发一系列问题 .】12/线程池:是后台执行多个任务的线程集合.(线程池适用于需要多个线程而实际执行时间又不多的场合,如经常处于等待状态的线程。当服务器应用程序接受大量短小线程的请求时,使用线程池技术是非常合适的,它可以大大减少创建和销毁线程的次数,从而提高服务器的工作效率。 )13.第三章 IP 地址转换与网卡信息检测1.域名解析 概念:网络通信必须指定双方机器的 IP 地址。 IP 地址虽然能够唯一地标示网络上的计算机,但

12、它是数字型的,很难记忆,因而又用字符型的数字型来表示它,这个字符型地址称为域名地址,简称域名(Domain Name) 。将域名转换为对应 IP 地址的过程称为域名解析。域名解析的使用:Dns 类常用的方法:(1)GetHostAddresses 方法;获取主机 IP 地址(public static IPAddress GetHostAddresses(string hostNameOrAddress) IPAddress ips=Dns.GetHostAddresses(“”);)(2)GetHostEntry 方法 public static IPHostEntery (string h

13、ostNameOrAddress)IPHostEntry host=Dns.GetHostEntry(“”);(3)GetHostName 方法 获取本机主机名String hostname = Dns.GetHostName();1.网络数据编码与解码 字符信息不能直接从网络的一端传递到另一端,字符首先需要被转换成一个字节序列后才能在网络中传输。将字符转换为字节序列的过程称为编码。当这些字节传送到网络的接收方时,接收方需反过来再转换为字符序列,这种过程称为解码。 【考点】(对于 Unicode 字符来说,编码是指将一组 Unicode 字符转换为一个字节序列的过程,解码是讲一个编码字节序列转

14、换为一组 Unicode 字符。 )2.Encoding 类 位于 System.Text 命名空间中,主要用于不同编码和 Unicode 之间进行转换。具体用法:a、获取所有编码名称及其描述信息;b、获取某个指定的编码描述信息;c 、不同编码之间的转换。Encoder 类 位于 System.Text 命名空间下,可以将字符转换为一个字节序列。(1) 获取Encoder 实例; (2)GetBytes 方法。(3)GetByteCount 方法 Decoder 类 可以将已编码的字节序列解码为字符序列。第 4 章 套接字1.套接字:【套接字是应用网络连接的特殊的文件描述符】它有三个基本要素组

15、成:网络类型、数据类型、数据传输类型、采用的网络协议。 【考点】2.面向连接的套接字服务编程的基本步骤:(1)创建一个包含采用的网络类型、数据传输类型和协议类型的本地套接字对象,并将与其服务器的 IP 地址和端口号绑定。这个过程可以通过 Socket 类。(2)在指定的端口进行监听,以便接受客户端连接的请求。(3)一旦接受了客户端的连接请求,就根据客户端发送的连接信息创建与该客户端对应的Socket 对象。(4)根据创建的 Socket 对象,分别与每个连接的客户进行数据传输。(5)根据传送信息情况确定是否关闭与对方的连接。3.NET 提供的从 Stream 继承的数据流类有: (1)文件流:

16、FileStream (2)内存流:MemoryStream (3)加密流:CryptoStream4.数据流分为:【网络流、内存流、文件流、加密流】 【考点】Stream:位于 System.IO 命名空间,抽象类,支持对字节的读取。NetworkStream:网络流,支持对网络数据的同步和异步访问。 在 System.Net.Sockets命名空间中。MemoryStream:位于 System.IO 命名空间,内存流,以内存作为支持存储区。没有后背存储,可用作临时缓冲区。FileStream:文件流,位于 System.IO 命名空间,FileStream 类的实例实际上代表一个磁盘文件

17、,使用 FileStream 类可以对文件系统上的文件进行读取、写入、打开和关闭操作。CryptoStream:将数据流连接到加密转换。位于 System.Security.Cryptography 命名空间中。5. 什么是网络流?网络流的基本操作有哪些?可以将 NetworkStream 看作在数据来源端和接收端之间架设了一个数据通道,这样一来,读取和写入数据就可以针对这个通道来进行。NetworkStream 流具有读取和写入两个基本操作。对于 NetworkStream 流,写入操作是指从来源端内存缓冲区到网络上的数据传输;读取操作是从网络上到接收端内存缓冲区(如字节数组)的数据传输。网

18、络流不具有查找操作。6.StreamWriter 与 StreamReader 类读写流具有什么样的优势?NetworkStream、MemoryStream 和 FileStream 类都提供了以字节为基本单位的读写方法,但是这种方法需要首先将待写入的数据转化为字节序列后才能进行读写,当操作的是使用字符编码的文本数据时,使用很不方便。因此,在操作文本数据时,一般使用StreamWriter、StreamReader 执行这些功能。第五章 TCP 应用编程1.TCP 是 Transmission Control Protocol(传输控制协议)的简称,是 TCP/IP 体系中面向连接运输层协议

19、,在网络中提供全双工的和可靠的服务。 【考点】2.TCP最主要的特点是:(1)是面向连接的传输层协议;(2)每个 TCP连接只能有两个端点,而且只能一对一通信,不能一点对多点直接通信;(3)通过 TCP连接传送的数据,能保证数据无差错、不丢失、不重复地准确到达接收方, 并且保证各数据到达的顺序与数据发出的顺序相同;(4)数据以字节流的方式传输;(5)传输的数据无消息边界。3.TCP的无消息边界问题 三种方法: (1)发送固定长度的消息(1)将消息长度与消息一起发送(3)使用特殊标记分割消息。 【考点】4.使用异步方式调用同步方法(1)生命与要调用的方法具有相同签名的委托;(2) 通过轮询方式检

20、查异步调用是否完成; (3)使用EndInvoke结束异步调用。第六章 UDP应用编程1.UDP:(User Datagram Protocol,用户数据包协议)是简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输服务。 【考点】2.UDP 与 TCP 的区别:【考点:UDP 是一个简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输服务。与 TCP 一样,UDP 也是构建于底层 IP 协议之上的传输层协议。与 TCP 相比, UDP 有如下一些特点:首先,UDP 协议是基于无连接的协议,它能够消除生成连接的系统延迟,所以速度比 TCP 更快。对于强调传输性能而不是传输完整性

21、的应用(例如音频和多媒体应用)UDP 是最好的选择。其次,UDP 不但支持一对一连接,而且也支持一对多连接,可以使用广播的方式多地址发送,而 TCP 仅支持一对一通信;第三,UDP 与 TCP 的报头比是 8:20,这使得 UDP 消耗的网络带宽更少。最后,UDP 协议传输的数据有消息边界,而 TCP 协议没有消息边界。但是使用 UDP 协议的发送无法了解数据报是否已经到达终端系统,这样一来,UDP 就无法保证数据被真正传送到了目标。UDP 没有任何对双方会话的支持,也不保证各数据报到达的顺序与数据包发出的顺序相同,可靠性不如 TCP 协议。 】(1)UDP速度比TCP快;(2)UDP有消息边

22、界,使用UDP不需要考虑消息边界问题,因此使用上比TCP简单;(3)UDP可以一对多传输(4)UDP可靠性不如TCP()(5)UDP不能保证有序传输(UDP不能保证数据的发送和接收顺序。对于突发性的数据报可能会乱序。)3.UdpClient 的 Connect 方法和 TcpClient 的 Connect 方法语法形式基本一致,作用是否相同?不同。UdpClient 的 Connect 方法仅指定远程主机,并不向远程主机发送连接请求。TcpClient 的 Connect 方法向远程主机发送连接请求。4.什么事广播、组播?两者区别?【考点】广播,指同时向多个设备发送消息,并且所有子网中的设备都可以接收到发送方发来的消息。每个广播消息包含一个特殊的 IP 地址。广播消息地址分为 2 种:本地广播和全球广播。使用广播只能向其所在的子网内发送消息,而且是向子网中所有的设备发送消息,没有目的性,不但造成了网络负载,而且资源消耗较高。组播,是将消息从一台设备发送到本网或全网内选择的设备自己上,即发送到那些加入制定组播组的设备上。5、简要回答利用UdpClient加入组播组和退出组播组的方法步骤。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报