Contents
网络应用编程入门知识
- 本章介绍网络应用编程所需的基本知识;
包括开发环境、开发模型、网络通信模式、网络协议、IP地址转换、域名解析以及网卡信息检测等;
20.2.19
- 流行模式:
C/S,Client / Server,客户端 / 服务器;
P2P,客户端和服务器都有,效率更高一些;
B/S,Browser / Server,浏览器 / 服务器; - 以 WPF 和 WCF 为主要基础,知识架构:
- 网络的两个含义:
1.互联网 (Internet);
2.企业内部网 (Intranet),将企业内部网和外部网络通过防火墙有效隔离; - 数据通信模型:
1.分散式 (Decentralized) ,早已被淘汰;
2.集中式 (Centralized),终端不处理信息,所有数据、运作、管理都由主机控制;
3.分布式 (Distributed),分散式和集中式的混合体,与计算机网络的主要区别是软件而非硬件;
现在企业管理系统一般是分布式 + 集中式的综合; - C/S 模式,又叫 C/S 架构,又叫 C/S 模型
胖客户端应用程序编程架构,主要工作在客户端;
将一个网络事务处理分为两部分,客户端、服务端;
面向服务的体系架构 (SOA),WCF 是其中一种具体实现技术;
用 WCF 编写服务端应用程序;
用 WPF 编写客户端应用程序; - B/S模式,仅使用 HTTP 进行通信;
采用三层架构设计,用户界面、逻辑处理和数据支持;
B/S 模式的应用程序也称为 Web 应用程序;
优点,单台计算机可以访问任何 web 服务器; (只需知道服务器的网址(IP 地址或域名));
20.2.25
- 网络协议 (network protocol),简称协议,为数据交换建立的规则;
HTTP,超文本传输协议,是TCP协议族的一员;是应用层协议;
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.26
- 一个 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 类;
- 链接:第一章_代码实现.