C#网络应用编程结课论文
随着计算机网络,特别是Internet的迅猛发展,网络应用越来越普及。网络编程的重要性也显得越发重要,网络编程所要解决的问题就是如今互联网时代遇到的问题,比如:如何通过计算机网络实现用户之间的通信?如何开发基于网络的应用系统(如协议分析、网络计费、网络监控、防火墙、网络入侵检测等)?如何有效地管理网络?如何减少因网络使用带来的不良影响?通过网络编程可以实现数据包的接收与发送,通过协议分析可以解释接收到的数据包,进而根据不同的应用需求实现相应的应用程序编制工作。正因为如此,我才有机会在校聆听老师对这门课的讲解,同时在学习之中,不断加深对这门课的理解,受益良多。
C#网络应用编程的知识点共分为进程与线程,IP地址转换与网卡信息检测,套接字与数据流,网络协议类基本编程技术,TCP
应用编程,UDP应用编程,FTP应用编程,HTTP应用编程,SMTP 与POP3应用编程,网络协议综合应用开发技术,P2P应用开发技术,数据加密与解密技术,网络应用开发综合实例。知识点循序渐进,清晰,简洁,通俗易懂,通过对知识点的学习,可将之归纳为,第一部分:进程管理和多线程处理、IP地址转换和域名解析、网卡与网络流量监测、数据编码和解码、套接字和数据流。第二部分:同步异步TCP编程、UDP编程广播和组播、FTP编程和文件上传下载、HTTP编程和文件上传下载、smtp和POP3应用编程。第三部分:
P2P应用开发、数据加密和解密、图形图像传输、序列化和反序列化。以上部分组成了本次课程的主要内容,从最基本的IP地址转换到网络编程的数据传输,直至数据的安全性操作,一步步深化C#网络方面的学习,从简单处入手,直到掌握。
在学习中,一些知识点的学习曾让我感到不解,也正因为不解才激发了深入钻研的兴趣。进程和线程是所有程序的基础,所有的网络编程都是基于进程和线程的,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。由程序、数据和进程控制块三部分组成。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域、数据区域和堆栈。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。进程具有四大特性,分别为动态性、并发性、独立性和异步性。线程是程序中一个单一的顺序控制流程,是进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可
少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另
一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。就绪状态是指线程具备运行的所有条件,逻辑上可以运行,在等待处理机;运行状态是指线程占有处理机正在运行;阻塞状态是指线程在等待一个事件(如某个信号量),逻辑上不可执行。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。线程与进程的区别归纳:
a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
c.调度和切换:线程上下文切换比进程上下文切换要快得多。
d.在多线程OS中,进程不是一个可执行的实体。
进程和线程是网络编程的基础,网络编程实质上是编写一个可用于网络的进程,在实际的设计中,还需慎重考虑到多线程的应用。
通过此次课程,不仅学习到了大量关于网络编程的知识,更是对其有了一定的实践认知,作为一门计算
机应用的学科,只有通过大量的练习,才能对这门课程有更深的认识。在具体的实践过程中,我对基于HTTP协议的网络应用编程最为了解,HTTP协议全称超文本传输协议,是用于服务器传输超文本到本地浏览器的传输协议。它
可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。通过URL令客户端浏览器或其他程序与Web服务器之间进行应用层通信。一次HTTP操作称为一个事务,其工作过程可分为四步:首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME 信息包括服务器信息、实体信息和可能的内容。客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。HTTP协议作为使用最广泛的协议,C#网络应用编程自然也要基于此进行开发,HTTP编程相关类分为HttpWebResponse、WebResponse、HttpWebRequest和WebRequest。以WebRequest 为例,通过HttpWebResponse类来实现Http的请求,响应处理。首先通过WebRequest类创建一个HttpWebRequest的对象,该对象可以包含Http请求信息。在HttpWebRequest类中的构造函数是:protected HttpWebRequest(SerializationInfo serializationInfo, StreamingContext streamingContext),
然后设置HttpWebRequest对象,其实就是设置Http请求报文的信息内容。.从HttpWebRequest对象中获取HttpWebResponse对象,该对象包含
Http响应信息。最后从响应信息中获取响应头信息和响应主体信息。通过以上步骤可对网络发出请求并对请求到的信息进行解析。
在网络编程中,网络数据的传输过程的安全也十分重要,互联网时代的今天,只要涉及到网络的数据都不会是绝对安全的数据,但我们仍要努力保证数据的安全,为此就需要对网络数据的传输进行加密,这就涉及到了课程中所讲的数据加密和解密技术。数据加密技术是指将一个信息经过加密钥匙及加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数、解密钥匙还原成明文。加密技术是网络安全技术的基石。一般的数据加密可在通信的三个层次来实现:链路加密、节点加密和端到端加密。在C#的相关知识中,系统提供了对称加密和不对称加密相关类,为我们的学习提供了先决条件,我们要通过数据加密技术,保证网络应用的数据。
网络编程的学习,不仅要认真聆听老师的谆谆教导,更要抽出时间钻研课本中的知识,实践与理论相结合,通过动手实践,编写UDP 聊天程序,TCP聊天程序以及HTTP的多线程处理,加深了对理论知识的理解,更是让我体会到,语言只是一个工具,实践性的操作才能让我们以更快的速度去掌握这门工具,同时,其相关的理论知识,不仅是为C#提供了理论基础,而且也是其他语言的理论基础,网络协议处于
底层,现在所流行的程序设计语言也都是基于此开发的,比如移动开发涉及的java安卓开发和oc苹果开发,其对网络数据的传输和应用,一定也是绕不开http,TCP等协议的,所以理论知识是软件开发的基石,只有深刻的理解它,那么在实践的操作中,才能得
>安卓进程间通信