C网络应用编程知识点_第1页
C网络应用编程知识点_第2页
C网络应用编程知识点_第3页
C网络应用编程知识点_第4页
C网络应用编程知识点_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章C/SB/S模式,C/SB/S的优缺点。编程端软件。C/S客户端〔Client,也叫客户机〕用于为用户供给操作,同时向网络供给恳求效劳的接口;〔Serve负责接收并处理客户端发出的效劳恳求B/S通信模型;B/S只使用点是单台计算机可以访问任何WebB/SC/SWPFWCFs来访问TCP/IP网络模型有四层:应用层,传输层,网际层,网络接口层什么是套接字?套接字有哪几种类型?答:套接字是支持TCP/IPIPIP地址和端口,同时也保存了双方通信承受的网络协议等信息。套接字有3种类型:流式套接字、数据报套接字〕和原始套接字。IP地址转换与域名解析相关的类都在System.Net命名空间下。IP:在因特网中,每台联网的主机都要有一个在全世界范围内唯一的标识,该标识称为IP地址。多播地址在:~55之间。IP地址由网络号和主机号构成。端口号:用于区分主机上的那个进程,而引入的的地址空间,叫端口号。IPIPAddress类;IPIPEndPoint类;InternetIntranetIPHostEntry类。IPHostEntry类将一个域名系〔DNS〕的主机名与一组别名和一组匹配的IPDns类一起使用。IPAddress[]ips=Dns.GetHostEntry(“news.sohu”).AddressList;DNSIPAddress[]GetHostAddresses(stringhostNameOrAddress);方法IPhostNameOrAddressIP地址,则直接返回此地址;hostNameOrAddress是空字符串,则返回本地主机的全部IPv4IPv6地址。DNS类的GetHostEntry(Strings):IPHostEntry实例。对网络流量和本机网络地址等信息的访问类都在System.Net.NetworkInformation命名空NetworkInterfaceIPIterfaceProperties〔实例都只能用静态方法得到实例,网络流量用其次章数字墨迹有哪些用途?一般的WPF元素是否具有数字墨迹相关的大事?WPF元素都支持数字墨迹功能。n〔快速访问工具栏〔应用程序菜单〔选项卡。触笔〔s〕在画板上移动时显示的痕迹叫墨迹笔画〔e,简称笔画。〔。其D一般用方法猎取静态呈现墨迹的方法是自定义从StrokeDrawCore方法。动态呈现是指在移动触点的过程中同时呈现墨迹。是将自定义墨迹控件的DynamicRendererDynamicRendererOnDraw方法。制作自定义墨迹画板的主要设计步骤如下。InkCanvas派生的类。DynamicRendererInkCanvas.DynamicRenderer属性。OnStrokeCollectedInkCanvas中的原始笔画,然后创立一个自定义笔画,将其添加到Strokes属性中。最终再使用包含该自定义笔画的InkCanvasStrokeCollectedEventArgs调用基类相应的方法。在OnStylusMove大事中,每次自动收集到的墨迹点的集合中只有两个点:一个是上次收集的集合中的最终一个点,一个是当前点。第三章简要答复以下问题。进程和线程有什么区分?为什么要用多线程?多线程适用于哪种场合?前台线程和后台线程有什么区分和联系?如何推断一个线程属于前台线程还是后台线程?如何将一个线程设置为后台线程?1〕进程是正在执行的程序,线程是某个进程中的一个或多个执行流。进程是线程的容器,至少有一个主线程,线程的提出是为了适应程序内部的并行。多线程可让多个任务同时执行。当执行需要较长时间才能完成的连续操作时,或者等待网络或其他I/O设备相应时,都可以使用多线程技术。〔2〕的终止,而前台线程则会影响进程的终止。只有当属于某个进程的全部前台线程都终止后,Thread对象创立的线程默认都是前台线程,线程池中的以及托管线程都是后台线程。System.Diagnostics命名空间下的Process类供给了在操作系统级别对进程进展治理的各种属性和方法。ProcessProcessp=newProcess;//首先需要创立Process类的一个实例p.StartInfo.FileName=“Notepad.exe“;//通过StartInfo属性指定要运行的应用程序名称以及传递的参数p.StartInfo.Arguments=argument;//要翻开的文本文件p.StartInfo.WindowStyle=ProcessWindowStyle.Normal;//带图形界面的设置p.Start;//启动进程终止进程有两种方式:KillCloseMainWindow,Kill方法用于强行终止进程,是终止没有图形化界面进程的唯一方法。Kill方法是异步执行的,调用WaitForExit方法等待进程退出,或检查HasExitedCloseMainWindow〔〕方法通过向主窗口发送关闭消息来关闭进程。此两种方法都只能对本机进程进展操作。WaitForInputIdle方法仅适用于具有用户界面的进程,它可以使Process等待关联进程进入空闲状态。EnableRaisingEventsExitedWaitForExit方法可设置等待关联进程退出的时间,并在该段时间完毕前或该进程退出前,阻挡当前线程执行。猎取进程信息Process.GetProcesses(stringIP)猎取指定主机的进程,为空时是本地主机的。ProcessGetProcessById(intIDProcessIdProcessProcessGetProcessesByName(stringprocessName)方法返回一个包含全部关联进程的数组,得到该数组后,可以再依次查询这些进程中的每一个标识符,从而得到与该进程相关的更多信RefreshProcessInfoSystem.ThreadingThread主线程和关心线程:当程序作为进程来运行时,系统都会为该进程创立一个默认的线程,该线程称为主线程。或者说,主线程用于执行Main方法中的代码,当Main方法返回时,主线程也自动终止。在一个进程中,除了主线程之外的其他线程都称为关心线程。ThreadStarta=newThreadStart(test);//publicvoidtest;ThreadThreadStarta=newThreadStart(test);//publicvoidtest;Threadt=newThread(a);t.Start;//等价于Threadt=newThread(test);t.Start;还有一个系统自定义托付是ParameterizedThreadStart的托付,所执行的方法是无返回值的参Object线程启动即Start方法,假设线程执行的托付是无参的则为Start.假设是有参数的则为Start(Objectobj)。终止或取消线程:1volatile称为终止线程。2ThreadAbort果是强行终止该线程的执行,属于非正常终止的状况,称为取消线程的执行休眠线程:调用Thread.Sleep(参数)的线程自己堵塞。什么是线程池?使用线程池有什么好处?线程池适用于执行时间短,任务量大的场合。线程池是在后台执行任务的线程集合,好处有:如当某个线程无法进入线程池执行时先将其放入等待队列,自动打算用哪个处理器执行线程池中的某个线程,自动调整这些线程执行时的负载平衡问题等。另外,线程池总是在后台异步处理恳求的任务,而不会占用主线程,也不会延迟主线程中后续恳求的处理。线程池的根本特征:托管线程池中的线程都是后台线程。添加到线程池中的任务不愿定会马上执行。线程池可自动重用已创立过的线程。一旦池中的某个线程完成任务,它将返回到等待线程队列中,等待被再次使用,而不是直接销毁它。开发人员可设置线程池的最大线程数。从.NET4.0Thread.QueueUserWorkItem(newWaitCallback)来添加有参数无返回值的函数。什么是同步?什么是异步?答:执行某语句时,在该语句完成之前不会执行其后面的代码,这种执行方式称为同步执行。另一种是执行某语句时,不管该语句是否完成,都会连续执行其后面的语句,这种执行方式叫异步执行。为什么需要同步?C#供给了什么语句可以简洁地实现代码同步?的目的是为了防止多个线程同时访问某些资源时消灭死锁和争用状况。C#供给的lock语句可以简洁地实现代码同步。实现资源同步的方式:多线程实现资源同步主要通过加锁或原子操作来实现。用volatile这样做的好处是全部处理器都可以访问该字段最的值。Interlocked类供给的静态方法锁定局部变量,通过加锁和解锁供给了原子级别的静态操作方法。用lock语句锁定代码块〔了解:lock语句的实现原理是进入临界区之前先锁定某个私有对象〔声明为private的对象〕,然后再执行临界区中的代码,当代码块中的语句执行完毕后,再自动解除该锁〕。不允许锁定声明为Public为了解决死锁以及异步执行过程中的同步问题,WPF中的每个元素〔包括根元素〕都有DispatchertextBlock1.Dispatcher.Invoke(=>{textBlock1.text=”1”;});什么叫应用程序域?应用程序域和进程有什么区分和联系?和线程呢?答:一个主进程中,可包含一个或多个“子进程”,每个“子进程”所占用的内存范围〔或者叫边界〕都称为一个应用程序域;一个进程既可以只包含一个应用程序域,也可以同时包含多个相互隔离的应用程序域。多进程是在操作系统级别使用的功能,资源消耗较大,细节把握简洁;应用程序域是在应用程序级别使用的功能,比直接用多进程来实现进程治理速度快、资源消耗少而且更安全,是轻量级的进程治理。应用程序域和线程的关系:应用程序域为安全性、版本把握、牢靠性和托管代码的卸载形成隔离边界,执行应用程序时,全部托管代码均加载到一个应用程序域中,由一个或多个托管线程来运行。应用程序域和线程之间不具有一对一的相关性。域的资源。什么时候使用应用程序域?答:1.当需要动态扩展程序的功能时,可将其他进程〔.dll文件或者.exe文件〕中的全部或局部功能“嵌入”到当前应用程序进程界面中,使其看起来就像是同一个应用程序一样〔多进程则无法做到这一点,而且这种实现方式比用多进程实现的运行速度快。在同一个进程内,实现不同域之间的通信比用多进程实现简洁。在安全性方面,用应用程序域来实现比用多进程来实现更有保障第四章1〔记〕#中的字符和字符串默认承受的都是e编码。g类位于System.Text〔了解〕EncodingGetEncodings方法可得到一个包含全部编码的EncodingInfo类型的数组。也可以利用Encoding类静态的GetEndcoingEncodingHeaderNameEncodingName属性猎取编码描述。2. publicstaticbyte[]Convert(EncodingsrcEncoding, //源编码EncodingdstEncoding, //目标编码byte[]bytes //待转换的字节数组)将字符序列转换为字节序列的过程叫编码,GetBytes的过程叫解码,GetString。3种:逐字节挨次写入〔将数据从内存缓冲区传输到外部源〕;逐字节挨次读取〔将数据从外部源传输到内存缓冲区〕;随机读写〔从某个位置开头逐字节挨次读或写〕;FileStream〔stringpath,FileModemode,FileAccessaccess〕;FileMode.Append只能同FileAccess.WriteFile.OpenRead(Stringpath);创立仅读取的文件流.〔MemoryStream〕内存流:CanSeektrue程序中可通过Position属性猎取内存流的当前位置。内存流的容量可自动增长。NetworkStream仅支持面对连接的套接字。留意以下几点:通过DataAvailable属性,可查看缓冲区中是否有数据等待读出.网络流没有当前位置的概念,不支持对数据流的查找和随机访问,NetworkStreamCanSeekfalse.PositionSeekNotSupportedException特别.System.IO下,加密流〔CrytoStream〕System.Security.Cryptography下;publicCryptoStream(Streamstream, //对其执行加密转换的流ICryptoTransformtransform, //要对流执行的加密转换CryptoStreamModemode //CryptoStreamModeReadWrite两种);StreamReaderStreamWriterNetworkStreamMemoryStreamFileStream实现思路都是先将待写入的数据转化StreamReaderStreamWriter来简化。StremReadersr=newStremReader(前三种流对象)。别遗忘Closeusing。为什么要对字符进展编码和解码?答:在网络通信中,很多状况下通信双方传达的都是字符信息。但是,字符信息并不能直接从网络的一端传递到另一端,这些字符信息首先需要被转换成一个字节序列,然后才能在网络中传输。因此,发送方需要进展编码,相应的接收方就要执行解码。3.简述对称加密〔私钥加密〕和不对称加密〔公钥加密〕的特点及实现原理。1〕加密和解密数据使用同一个密钥2〕一次加密一个数据块,因此支持数据流。常见的有:DES,RC2,SHA-1,AES;实现由CiperMode.CBC,IV对称加密算法的优点:保密强度高,加、解密速度快,适合加密大量数据。对称加密的缺点:通信双方使用一样的密钥和IV加密和解密,发送方需要先将密钥和IV传递给接收方。假设攻击者截获了密钥和IV,也就等于知道了如何解密数据。不对称加密密的数据只能用私钥解密,反之,用私钥加密的数据只能用公钥解密〔用长度固定的缓冲区,因此无法使用流。RSA,ECC不对称加密的优点:更不简洁被攻击。不对称加密的缺点:由于无法使用流,因此不适合加密大量数据。来确保密钥存储的安全性,这就是密钥容器的用途。什么是数字签名?数字签名有什么用途?〔这题了解〕答:在应用程序中,可以利用数字签名实现数据身份验证和数据完整性验证。数据身份输过程中是否被修改正。数字签名的用途:通过Internet下载文件后,验证下载的文件是否和原始文件完全一样。换言之,假设通信双方期望确保信息是来自对方而不是来自第三方,需要使用数字签名进展身份验证。另外,数字签名还可以防止特定一方否认曾发送过的信息。第五章并发集合来实现。System.Threading.TasksTask(无返回值)Task<TResult>有返回值类来描述。Task.Delay方法只能用于异步等待,等待过程中不会界面流畅性。Thread.Sleep假设UI操作,休眠期间界面有停顿现象。ActionFunc托付有什么不同?n托付封装了不带返回值的方法〔有06个输入参数,返回类型为,托付封装了带返回值的方法〔有~6个输入参数,返回类型为。ActionFuncoutref异步编程的实现方式有:传统的异步编程模型〔APM〕基于大事的异步设计模式〔EAP〕TAP4.TAP有几种创立任务的方式?4种方式。利用Task.Run方法隐式创立和执行任务;此种方式表示使用默认的任务调度程序。asyncawait关键字隐式创立异步任务在当前线程中异步执行指定方法;WPF控件的调度器隐式创立和执行任务;TaskTask<TResult>的构造函数创立任务WPF应用程序中有几种可用的定时器?3种。System.Timers.Timer类;System.Windows.Threading.DispatcherTimer类;System.Threading.Timer类。asyncawaitTask.Run调用的异步方法有和不同?asyncawaitC#5.0供给的功能,仅包含asyncawait关键字的异步方法不Task.Run方法是.NET框4.5供给的功能,它会在线程池中用单独的线程执行某个任务。把一般方法和异步方法作为任务来执行时,调用方法有何不同?一般方法要用Task.RunTaskTask<TResult>TaskTask.Run方法去调用。简述实现任务的取消功能的机制。答:System.Threading.CancellationTokenSource用于创立取消通知,称为取消源。System.Threading.CancellationToken构造用于传播应取消操作的通知,称为取消令牌。调用任务的代码在安排任务前,可先用CancellationTokenSource类创立一个取消源

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论