C#网络编程复习文献_第1页
C#网络编程复习文献_第2页
C#网络编程复习文献_第3页
C#网络编程复习文献_第4页
C#网络编程复习文献_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

C 网络编程复习文献 第一章 概述 1 分散式指用户只负责管理自己的计算机系统 各自独立的系统之间没有资源或信息的交 换或共享 集中式指用一台主计算机保存一个企业组织的全部数据 而用户则通过终端连接到这台主 计算机系统并与之通信 从而达到访问数据的目的 终端是包含键盘和显示器的端设备 通过通信链路发送和接收数据 分布式是分散式系统和集中式系统的混合 它由一个又一个连接起来的独立计算机组成 企业管理系统就是集中式和分布式综合的一种表芯 所有数据用专用的数据库 SQL Server Oracle 或者 DB2 集中存储 属于集中式 而对数据的处理则由各个部门的软件 分别控制 属于分布式 2 TCP IP 网络协议 考点 TCP IP 分层及其作用 TCP IP 分四层概念模型 a 应用层 该层负责应用程序之间的沟通 主要协议有简单邮件传输协议 SMTP 文 件传输协议 FTP 以及网络远程访问协议 Telnet 等 负责实现一切与应用程序 相关的功能 b 传输层 该层提供节点间的数据传送以及应用程序之间的通信服务 主要功能是数据 格式化 数据确认和丢失重传等 主要协议有传输控制协议 TCP 用户数据报协议 UDP 等 负责提供可靠的传输服务 c 网际层 该层负责提供基本的数据封包传送功能 让每一块数据包都能够到达目的主 机 但他不检查数据包是否被正确接受 网络协议 IP 即属于该层协议 负责网络 间的寻址 d 网络接口层 该层负责接收 IP 数据报并进行传输 从网络上接受物理帧 抽取 IP 数据 报转交给下一层 对实际的网络媒体进行管理 定义如何使用实际网络来传送数据 负责实际数据的传输 第二章 进程与线程 1 进程与线程 进程 进程是一段静态指令序列 程序 的动态执行过程 线程 一个进程可以划分为若干个独立的执行流 这些独立的执行流称为线程 线程分为主线程 辅助线程 进程与线程的区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活 动 进程是系统进行资源分配和调度的一个独立单位 线程是进程的一个实体 是 CPU 调度和分派的基本单位 它是比进程更小的能独立运行的基 本单位 线程自己基本上不拥有系统资源 只拥有一点在运行中必不可少的资源 如程序计数 器 一组寄存器和栈 但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源 一个线程可以创建和撤销另一个线程 同一个进程中的多个线程之间可以并发执行 2 进程管理 Process 类 a 确定进程是否响应 是否已经退出 b 获取系统正在进 行的进程列表 c 获取个进程的资源占用情况 d 查询本地或远程进程的相关信息等 3 Process 的命名空间 System Diagnostics 4 Process 类常用的属性和方法 BasePriority 属性 PriorityClass 属性 设置或更改进程的优先级 枚举值有 6 个 Idle Normal High AboveNormal BelowNormal RealTime ExitCode 属性 获取关联进程终止时指定的值 ExitTime 属性 获取关联进程推出的时间 该值只有在 HasExited 属性为 True 时才能检 测 ID 属性 获取关联进程的唯一标识符 MainModule 属性 获取关联进程的主模版 即加载到特定进程中的 dll 或 exe 文件 一 般用该属性查看启动进程的可执行文件的信息 包括莫板块 文件名和模块占用的内存等 详细信息 ProcessName 属性 获取该进程的名称 该名称不包括文件扩展名和路径 StartInfo 属性 获取或设置要传递给启动进程的文件名以及启动参数 类似于命令行方式 输入的命令和参数 StartTime 属性 获取关联进程启动的时间 Threads 属性 获取在关联进程中运行的一组线程 TotalProcessorTime 属性 WorkingSet64 属性 获取进程分配的物理内存量 PeakWorkingSet64 属性 获取进程使用的最大物理内存量 StandardInput 属性 用于写入应用程序的流 StandardOutput 属性 获取用于读取应用程序输出的流 Close 方法 释放与次组件关联的所有资源 CloseMainWindow 方法 通过像主窗口发送关闭消息来关闭具有用户界面的进程 GetProcessById 方法 通过进程 ID 创建新的 Process 组件 并将其与本地计算机上的进 程资源关联 GetProcesses 方法 创建新的 Proccess 组件的数组 并将它们与本地家算计上的所有进 程资源关联 GetProcessesByName 方法 创建新的 Process 组件的数组 并将它们与本地计算机上 运行统一可执行文件的所有进程资源关联 Kill 方法 立即强制终止关联的进程 Refresh 方法 重新获取关联进程信息 Start 启动进程资源并将其与 Process 组件关联 WaitForExit 方法 设置等待关联进程退出的事件 并在该段时间结束前或该进程退出前 阻止当前线程执行 WaitForInputIdle 方法 使 Process 组件等待关联进程进入空闲状态 仅适用于具有用户 界面的进程 5 线程管理 Thread 类 命名空间 System Threading 创建一个线程的一般步骤有三步 第一步 编写一个入口函数 public void EntryMethod 第二步 创建入口委托 ThreadStart entryPoint new ThreadStart EntryPointMethod 第三步 创建线程 Thread WorkThread new Thread entryPoint 6 前台线程 默认情况下 通过创建并启动新的 Thread 对象而生成的线程都是前台线程 后台线程 默认情况下 属于托管线程池的线程 即 IsThreadPoolThread 属性为 true 的 线程 都是后台线程 考点 前台线程和后台线程的区别是后台线程不会影响进程终止 属于某个进程的所有前台线程都终止后公共语言运行库就会结束该进程而且所有属于该进 程的后台线程都会立即停止 而不管后台工作是否完成 Class c1 new Class Thread myThread new Thread c1 Method1 myThread IsBackground true 7 如何在一个线程访问另一个线程 考点 两种办法 一 使用委托 Delegate 和事件 Event 来完成这个工作 二 利用 BackgroundWorker 组件实现这个功能 8 如何实现两个线程同步 考点 使用同步类 Interlocked 互锁 Monitor 管程 和 Mutex 互斥体 9 集合 Collections 除了 Array 类定义在 System 命名空间中外其他集合类都定义在 System Collections 命名 空间中 10 Socket Accept 处理任何传入的请求 Socket Listen 方法监听客户端连接请求 11 Lock 语句 一定要将 Object 类型的对象声明为 private 不能将其声明为 public 否则将会使 lock 语句无法控制 从而引发一系列问题 12 线程池 是后台执行多个任务的线程集合 线程池适用于需要多个线程而实际执行时 间又不多的场合 如经常处于等待状态的线程 当服务器应用程序接受大量短小线程的请 求时 使用线程池技术是非常合适的 它可以大大减少创建和销毁线程的次数 从而提高 服务器的工作效率 13 第三章 IP 地址转换与网卡信息检测 1 域名解析 概念 网络通信必须指定双方机器的 IP 地址 IP 地址虽然能够唯一地标示网 络上的计算机 但它是数字型的 很难记忆 因而又用字符型的数字型来表示它 这个字 符型地址称为域名地址 简称域名 Domain Name 将域名转换为对应 IP 地址的过程 称为域名解析 域名解析的使用 Dns 类常用的方法 1 GetHostAddresses 方法 获取主机 IP 地址 public static IPAddress GetHostAddresses string hostNameOrAddress IPAddress ips Dns GetHostAddresses 2 GetHostEntry 方法 public static IPHostEntery string hostNameOrAddress IPHostEntry host Dns GetHostEntry 3 GetHostName 方法 获取本机主机名 String hostname Dns GetHostName 1 网络数据编码与解码 字符信息不能直接从网络的一端传递到另一端 字符首先需要被转 换成一个字节序列后才能在网络中传输 将字符转换为字节序列的过程称为编码 当这些 字节传送到网络的接收方时 接收方需反过来再转换为字符序列 这种过程称为解码 考 点 对于 Unicode 字符来说 编码是指将一组 Unicode 字符转换为一个字节序列的过程 解码是讲一个编码字节序列转换为一组 Unicode 字符 2 Encoding 类 位于 System Text 命名空间中 主要用于不同编码和 Unicode 之间进行 转换 具体用法 a 获取所有编码名称及其描述信息 b 获取某个指定的编码描述信息 c 不同编码之间的转换 Encoder 类 位于 System Text 命名空间下 可以将字符转换为一个字节序列 1 获取 Encoder 实例 2 GetBytes 方法 3 GetByteCount 方法 Decoder 类 可以将已编码的字节序列解码为字符序列 第 4 章 套接字 1 套接字 套接字是应用网络连接的特殊的文件描述符 它有三个基本要素组成 网络 类型 数据类型 数据传输类型 采用的网络协议 考点 2 面向连接的套接字服务编程的基本步骤 1 创建一个包含采用的网络类型 数据传输类型和协议类型的本地套接字对象 并将与其 服务器的 IP 地址和端口号绑定 这个过程可以通过 Socket 类 2 在指定的端口进行监听 以便接受客户端连接的请求 3 一旦接受了客户端的连接请求 就根据客户端发送的连接信息创建与该客户端对应的 Socket 对象 4 根据创建的 Socket 对象 分别与每个连接的客户进行数据传输 5 根据传送信息情况确定是否关闭与对方的连接 3 NET 提供的从 Stream 继承的数据流类有 1 文件流 FileStream 2 内存流 MemoryStream 3 加密流 CryptoStream 4 数据流分为 网络流 内存流 文件流 加密流 考点 Stream 位于 System IO 命名空间 抽象类 支持对字节的读取 NetworkStream 网络流 支持对网络数据的同步和异步访问 在 System Net Sockets 命名空间中 MemoryStream 位于 System IO 命名空间 内存流 以内存作为支持存储区 没有后背 存储 可用作临时缓冲区 FileStream 文件流 位于 System IO 命名空间 FileStream 类的实例实际上代表一个磁 盘文件 使用 FileStream 类可以对文件系统上的文件进行读取 写入 打开和关闭操作 CryptoStream 将数据流连接到加密转换 位于 System Security Cryptography 命名空 间中 5 什么是网络流 网络流的基本操作有哪些 可以将 NetworkStream 看作在数据来源端和接收端之间架设了一个数据通道 这样一来 读取和写入数据就可以针对这个通道来进行 NetworkStream 流具有读取和写入两个基 本操作 对于 NetworkStream 流 写入操作是指从来源端内存缓冲区到网络上的数据传 输 读取操作是从网络上到接收端内存缓冲区 如字节数组 的数据传输 网络流不具有 查找操作 6 StreamWriter 与 StreamReader 类读写流具有什么样的优势 NetworkStream MemoryStream 和 FileStream 类都提供了以字节为基本单位的读写 方法 但是这种方法需要首先将待写入的数据转化为字节序列后才能进行读写 当操作的 是使用字符编码的文本数据时 使用很不方便 因此 在操作文本数据时 一般使用 StreamWriter StreamReader 执行这些功能 第五章 TCP 应用编程 1 TCP 是 Transmission Control Protocol 传输控制协议 的简称 是 TCP IP 体系中面向 连接运输层协议 在网络中提供全双工的和可靠的服务 考点 2 TCP最主要的特点是 1 是面向连接的传输层协议 2 每个TCP连接只能有两个端点 而且只能一对一通信 不能一点对多点直接通信 3 通过TCP连接传送的数据 能保证数据无差错 不丢失 不重复地准确到达接收 方 并且保证各数据到达的顺序与数据发出的顺序相同 4 数据以字节流的方式传输 5 传输的数据无消息边界 3 TCP的无消息边界问题 三种方法 1 发送固定长度的消息 1 将消息长度与消息一起发 送 3 使用特殊标记分割消息 考点 4 使用异步方式调用同步方法 1 生命与要调用的方法具有相同签名的委托 2 通过轮询方式检查异步调用是否完成 3 使 用EndInvoke结束异步调用 第六章 UDP应用编程 1 UDP User Datagram Protocol 用户数据包协议 是简单的 面向数据报的无连接 协议 提供了快速但不一定可靠的传输服务 考点 2 UDP 与 TCP 的区别 考点 UDP 是一个简单的 面向数据报的无连接协议 提供了快 速但不一定可靠的传输服务 与 TCP 一样 UDP 也是构建于底层 IP 协议之上的传输层协 议 与 TCP 相比 UDP 有如下一些特点 首先 UDP 协议是基于无连接的协议 它能够 消除生成连接的系统延迟 所以速度比 TCP 更快 对于强调传输性能而不是传输完整性的 应用 例如音频和多媒体应用 UDP 是最好的选择 其次 UDP 不但支持一对一连接 而且也支持一对多连接 可以使用广播的方式多地址发送 而 TCP 仅支持一对一通信 第 三 UDP 与 TCP 的报头比是 8 20 这使得 UDP 消耗的网络带宽更少 最后 UDP 协议 传输的数据有消息边界 而 TCP 协议没有消息边界 但是使用 UDP 协议的发送无法了解 数据报是否已经到达终端系统 这样一来 UDP 就无法保证数据被真正传送到了目标 UDP 没有任何对双方会话的支持 也不保证各数据报到达的顺序与数据包发出的顺序相同 可靠性不如 TCP 协议 1 UDP速度比TCP快 2 UDP有消息边界 使用UDP不需要考虑消息边界问题 因此使用上比TCP简单 3 UDP可以一对多传输 4 UDP可靠性不如TCP 5 UDP不能保证有序传输 UDP不能保证数据的发送和接收顺序 对于突发性的数据报可 能会乱序 3 UdpClient 的 Connect 方法和 TcpClient 的 Connect 方法语法形式基本一致 作用是 否相同 不同 UdpClient 的 Connect 方法仅指定远程主机 并不向远程主机发送连接请求 TcpClient 的 Connect 方法向远程主机发送连接请求 4 什么事广播 组播 两者区别 考点 广播 指同时向多个设备发送消息 并且所有子网中的设备都可以接收到发送方发来的消 息 每个广播消息包含一个特殊的 IP 地址 广播消息地址分为 2 种 本地广播和全球广播 使用广播只能向其所在的子网内发送消息 而且是向子网中所有的设备发送消息 没有目 的性 不但造成了网络负载 而且资源消耗较高 组播 是将消息从一台设备发送到本网 或全网内选择的设备自己上 即发送到那些加入制定组播组的设备上 5 简要回答利用UdpClient加入组播组和退出组播组的方法步骤 在UDP协议中 广播和组播的实现都是借助于特殊的IP地址实现的 特别是组播比较 特殊 在 NET套接字中 可以使用JoinMutiCastGroup加入组播组 通过向特殊IP发送消 息 实现向加入到组播组的主机发送消息 第七章 FTP应用编程 不考 1 FTP的主要功能 1 提供文件的共享 包括程序文件和数据文件 2 支持间接使用远程计算机 3 使用户不因各类主机文件存储器系统的差异而受影响 4 使用 TCP 提供可靠且有效的传输 2 FTP 常用的两种传输方式 ASCII 传输方式和二进制传输方式 第八章 HTTP 应用编程 1 HTTP HyperText Transfer Protocol 超文件传输协议 是因特网上应用最为广泛的一 种网络传输协议 考点 2 HTTP特点 1 HTTP以TCP方式工作 2 HTTP是无状态的 3 HTTP使用元信息作为标头 考点 3 分别从Windows应用程序和Web应用程序的角度 说明 NET提供了哪些对HTTP封装的 技术 在 Windows 应用程序中 NET 提供了以下类对 HTTP 进行封装 1 WebRequest 类和 HttpWebRequest 类 WebRequest 是 NET Framework 的请求 响应模型的抽象 abstract 基类 该类专用于访问 Internet 数据 HttpWebRequest 类是针对于 HTTP 的特定 实现 该类通过 HTTP 和服务器交互 2 WebResponse 类和 HttpWebResponse 类 WebResponse 类也是一个抽象基类 针对 HTTP 的响应类是派生自 WebResponse 类的 HttpWebRequest 类 HttpWebResponse 对象是通 过调用 WebRequest 实例的 GetResponse 方法来创建的 而不是利用构造 函数创建 HttpWebResponse 类的实例 ASP NET 应用程序提供了以下类对 HTTP 进行封装 1 HttpRequest 类 它的方法和属性是通过 ASP NET 的内部 Request 对象公 开的 2 HttpResponse 类 它的方法和属性是通过 ASP NET 的内部 Response 对 象公开的 另外 Windows 应用程序和 Web 应用程序都提供了 Uri 类 该类定义了属性和方法来处 理 URI 包括分析 比较和组合 4 HTTP 提供的请求方法 a GET 请求过去特定的资源 例如 请求一个 Web 页面 b POST c PUT d HEA

温馨提示

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

评论

0/150

提交评论