【Mark】网络应用编程

本文详细介绍了网络应用编程,涵盖网络应用基础知识、数据流加密解密、多进程多线程异步并行编程,以及WCF网络编程框架的使用。讨论了C/S、B/S模式,网络协议如TCP/IP,以及进程、线程与应用程序域的概念,提供了理解网络数据传输和安全性控制的基础。
摘要由CSDN通过智能技术生成

1章,网络应用编程所需的基本知识

  • 包括开发环境、开发模型、网络通信模式、网络协议、IP地址转换、域名解析以及网卡信息检测等

4章,数据流与数据的加密解密

  • 介绍数据编码和解码、数据流以及数据的加密和解密技术,这是理解网络数据传输以及网络数据安全性控制等高级应用的基础

3、5、6章,多进程 多线程 异步 并行编程技术

  • 介绍进程管理、多线程编程以及应用程序域的基本用法,如何用多任务实现异步和并行编程。在多核处理器、云计算和大数据处理流行的今天,异步和并行编程是高级网络应用的基础,也是必须掌握的基本技能

7~11章,WCF网络编程框架

  • 介绍面向服务的WCF编程入门知识和基本用法。如何用WCF和WPF编写基于HTTP、TCP、UDP以及MSMQ的网络应用程序,这是实际项目中使用最多的协议类网络编程技术

网络应用编程入门知识


  • 安装VisualStudio开发环境
  • 网络应用编程模型
  • TCP/IP网络协议
  • IP地址转换与域名解析
  • 网卡信息检测与网络流量检测

流行模式

  • C/S,Client / Server,客户端 / 服务器;
    P2P,客户端和服务器都有,效率更高一些;
    B/S,Browser / Server,浏览器 / 服务器;

WPFWCF 为主要基础,知识架构:
在这里插入图片描述
网络的两个含义:

  • 互联网 (Internet);互联网是一个大筐,装着万维网,万维网是个小筐,装了无数超链接.
  • 企业内部网 (Intranet),将企业内部网和外部网络通过防火墙有效隔离;

数据通信模型

  • 分散式 (Decentralized) ,各管各的,早已被淘汰;
  • 集中式 (Centralized),终端不能处理信息,所有数据、运作、管理全都交给主机;
  • 分布式 (Distributed),分散式+集中式,资源以透明方式供用户使用
    分布式系统与计算机网络的主要区别是软件而非硬件;
    现在企业管理系统一般是分布式 + 集中式的综合;

C/S 模式,又叫 C/S 架构或 C/S 模型

  • 以分布式为基础,抽象出来的编程模型
    主要工作在客户端;
    将一个网络事务处理分为两部分,客户端、服务端;
    面向服务的体系架构 (SOA),WCF 是其中一种具体实现技术;
    WCF 编写服务端应用程序;
    WPF 编写客户端应用程序;

B/S模式,仅使用 HTTP 进行通信;(我们主要学 C/S 模式)
采用三层架构设计,用户界面(浏览器)、逻辑处理(Web服务器) 和数据支持(数据库服务器);
B/S 模式的应用程序也称为 Web 应用程序;其客户端程序就是浏览器
优点,单台计算机可以访问任何 web 服务器; (只需知道服务器的网址(IP 地址或域名));20.2.19

网络协议 (network protocol),简称协议,为数据交换建立的规则

  • HTTP,Hypertext Transfer Protocol 超文本传输协议,是TCP协议族的一员;在应用层;
  • 传输层有 TCP、UDP
    TCP,传输控制协议;UDP,用户数据报协议;
    TCP,使用面向连接的套接字;在正式通信前必须要与对方建立起连接;
    UDP,使用无连接的;不提供可靠性保证,用数据包;
    链接:TCP、UDP和HTTP区别详解.

计算机网络体系结构 (architecture),OSI 的七层协议、TCP/IP 的四层、还有个五层协议;
为什么要分层?分层细化是一种化繁为简的通用方法;

  • TCP/IP 的四层:
    应用层,负责应用程序之间的沟通,SMTP、FTP、Telnet;
    传输层,负责节点间数据传送,及应用程序间通信服务,TCP、UDP;端口号是其服务接入点;
    网际层,负责给数据报最佳路径,核心协议 IP,其他 ICMP、ARP;
    网络接口层,负责接收数据报并进行传输;数据报,简单理解为“生成报告后的数据”;
  • 套接字,socket
    链接:第14章的网络编程. 20.2.25
  • 一个 IP 地址由两部分组成,网络号 + 主机号
    IPv4 编址方案,4个字节,点分十进制;
    IPv6 编址方案,16个字节,冒号分隔;
  • 子网掩码,用于屏蔽 IP 地址的一部分,以区别网络标识和主机标识;
    把所有的网络用1来标识,主机位用0来标识;例如:255.255.255.0 前三个字节就对应网络号;
  • 端口,物理意义上的端口是实际的接口;逻辑意义上的端口是进程标识
  • IP 地址转换相关类,命名空间 System.Net;
    ①IPAddress 类,提供网络协议 IP 地址
    Parse 方法,将 IP 地址字符串转换为其实例;(静态工厂方法)
    AddressFamily 属性,判断是 IPv4 还是 IPv6;
    ②IPEndPoint 类,包含 IP 地址和端口号
    public IPEndPoint(IPAddress address, int port);
    ③IPHostEntry 类,为主机提供信息容器
    Dns.GetHostEntry() 获得其对象;其实例包含主机相关信息;
    AddressList 属性,IP 地址列表;
    HostName 属性,包含指定主机名;
  • IP 地址不易记,通过 字符型地址(域名,Domain Name) 记;
    DNS (Domain Name System 域名系统),可将域名和IP地址相互转换;
    Dns 类提供了方便的域名解析功能,即很多静态方法:
    GetHostAddresses(String); GetHostEntry(String); GetHostName();
  • MAC 地址,物理地址;
  • 网络适配器,又称网卡 (NIC),是连接计算机与网络的硬件设备;
    NetworkInterface 类,检测网卡的配置和统计信息GetAllNetworkInterfaces();
    IPInterfaceProperties 类,检测网卡支持的各种地址;抽象类;networkInterface.GetIPProperites();
  • 网络流量检测相关类:IPGlobalProperties 类;
  • 链接:第一章_代码实现. 20.2.26

进程、线程与应用程序域


  • 进程,操作系统级别的概念,正在运行的程序;
    既包含被执行的程序所需要的资源,同时还对这些资源进行基本的内存边界管理
    是资源调度和分配的基本单位,Process 类;命名空间 System.Diagnostics
  • 线程,进程划分后的独立的单条执行流,小进程;
    是CPU调度和分配的基本单位,Thread 类
  • 并发,宏观并行,微观串行;
    并行,同时执行;
    异步,各个线程之间执行时各自运行,无前后关系,无相互等待,执行先后不可知;
  • 逻辑内核,一个物理内核 = 两个逻辑内核,普通计算机是一对一;
    指一个CPU双核心,就是单核多线程,多核处理器
    多线程技术真正实现了多个线程并行执行,而不是通过时间片来实现 宏观并行
    System.Environment类 提供的静态ProcessorCount属性
  • 启动进程
    1.用类的静态方法 Start()
    2.创建类的实例,设置属性 StartInfo 的 FileName 和 Arguments,然后调用实例方法 Start()
    关闭进程
    CloseMainWindow(),请求关闭进程;
    Kill(),杀死进程,直接杀死,强制关闭;
    注:调用方法关闭时若进程已经关闭ÿ
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值