网络编程技术(西电课件)第6章
合集下载
《网络编程技术》课件

后端开发技术
介绍常见的后端开发技术,如服务器端脚本语言(如PHP 、Python等)、数据库(如MySQL、MongoDB等)和 Web服务器(如Apache、Nginx等)。
Web应用安全
分析常见的Web应用安全问题,如跨站脚本攻击(XSS) 、SQL注入等,并提供防范措施和建议。
文件传
FTP协议
Java是一种静态类型的编 程语言,具有跨平台的特 性。
Java还提供了许多用于网 络编程的框架,如Spring Boot、Netty等。
Java提供了丰富的网络编 程API,如Socket、 ServerSocket等。
Java在网络应用服务器、 企业级应用等领域有广泛 的应用。
C网络编程
01 C是一种高效的、静态类型的编程语言。
02
SSL/TLS协议支持多种加密算法和协议版本,能够提供端到端的
安全连接。
SSL/TLS协议广泛应用于网页浏览、电子邮件、即时通讯等领域
03
的通信安全。
06 网络编程发展趋势与展望
云计算在网络编程中的应用
云计算为网络编程提供了强大的 基础设施和资源池,使得开发人 员能够更加高效地构建和部署应
用程序。
套接字编程
套接字是网络编程中的基本概念,通过套接字可以实现不 同计算机之间的通信,常用的套接字编程包括Socket编程 等。
02 网络协议与技术
TCP/IP协议族
总结词
TCP/IP协议族是互联网的基础,它定义了数据如何在不同网络之间传输。
详细描述
TCP/IP协议族包括传输控制协议(TCP)和网际协议(IP)。TCP负责数据的可 靠传输,而IP负责数据的路由。这些协议共同工作,使得各种设备可以在互联 网上通信。
网络编程技术(西电课件课本)_第1章节_IP地址

子网掩码
网关地址
通过哪一 个接口
静态路由的添加
利用命令:route add 可以添加静态路由 具体命令格式请用“route/?”查看
目的地址
子网掩码
网关地址
通过哪一 个接口
路由的分类
网关(Gateway)是不同网络之间用作协议转
换、路由转换的设备,它的存在使数据可以 在这些网络之间传输。它是一个网络和外界 的出口。没有网关设备计算机就不能和本网 以外的计算机通信。
子网掩码
为什么需要子网掩码
网络管理?广播风暴?
子网掩码
缺省子网掩码:
A类地址:255.0.0.0 B类地址:255.255.0.0 C类地址:255.255.255.0
172.16.2.160 255.255.0.0 10101100 00010000 00000010 00000000 10100000 00000000
如172.1.2.3所在网络的广播地址为172.1.255.255 广播地址和网络地址不能分配给任何一台主机. 以127开头的A类网不能分配给任何计算机,代表的是本 机网络,127.0.0.1代表本机地址
局域网可用的IP地址范围为
A类地址10.0.0.0 - 10.255.255.255 B类地址172.16.0.0 - 172.31.255.255 C类地址192.168.0.0 -192.168.255.255
思考题
172.0.3.4和172.0.4.51在缺省的情况下属 于同一个网段吗? 172.0.3.4和172.0.4.51在子网掩码是 255.255.255.0时属于同一个网段吗?
IP地址的唯一性
IP地址在Internet上的唯一性由以下措施来 保证:
网络编程技术第6章

26
查询或设置Internet请求选项
创 建 CInternetSession 类 对 象 后 , 可 以 调 用 它 的 QueryOption 成 员 函 数 查 询 Internet请求选项,调用它的SetOption成 员函数来设置这些选项。
创建连接类对象
通过调用CInternetSession对象的 GetFtpConnection、 GetHttpConnection、 GetGopherConnection成员函数,可以 分别建立CInternetSession对象与网络上 FTP、HTTP、和GOPHER服务器的连接。 并分别创建CFtpConnection、 CHttpConnection、 CGopherConnection类的对象,来代表这 三种连接。
13
6.3.1 CInternetSession类
CInternetSession类直接继承自CObject类, 该类用来建立与某个Internet服务器的会 话。还可以向代理服务器描述连接,如 果应用程序所使用的Internet连接必须保 持一段时间,则可以在CWinApp类中创 建相应的CInternetSession成员
CFtpFileFind( CFtpConnection* pConnection, // 连接对象指针 DWORD dwContext = 1); // 表示此操作的环境值 例如: CFtpFileFind* pFileFind; //pConnection 是已经建立的CInternetSession
对服务器上的文件和目录进行直接操作 CGopherConnection:管理与Gopher服务器的连接 CHttpConnection:管理与HTTP服务器的连接
连接类及其 派生类
查询或设置Internet请求选项
创 建 CInternetSession 类 对 象 后 , 可 以 调 用 它 的 QueryOption 成 员 函 数 查 询 Internet请求选项,调用它的SetOption成 员函数来设置这些选项。
创建连接类对象
通过调用CInternetSession对象的 GetFtpConnection、 GetHttpConnection、 GetGopherConnection成员函数,可以 分别建立CInternetSession对象与网络上 FTP、HTTP、和GOPHER服务器的连接。 并分别创建CFtpConnection、 CHttpConnection、 CGopherConnection类的对象,来代表这 三种连接。
13
6.3.1 CInternetSession类
CInternetSession类直接继承自CObject类, 该类用来建立与某个Internet服务器的会 话。还可以向代理服务器描述连接,如 果应用程序所使用的Internet连接必须保 持一段时间,则可以在CWinApp类中创 建相应的CInternetSession成员
CFtpFileFind( CFtpConnection* pConnection, // 连接对象指针 DWORD dwContext = 1); // 表示此操作的环境值 例如: CFtpFileFind* pFileFind; //pConnection 是已经建立的CInternetSession
对服务器上的文件和目录进行直接操作 CGopherConnection:管理与Gopher服务器的连接 CHttpConnection:管理与HTTP服务器的连接
连接类及其 派生类
《Java网络编程技术》PPT课件

器上的文件名,newname为保存在本地计算机上时使用的名字,如果不 指定newname,文件将以原名保存。 get命令下载的文件将保存在本地计算机的工作目录下。该目录是启动 FTP时在盘符C:后显示的目录。如果想修改本地计算机的工作目录,可以 使用 lcd 命令。比如:lcd d:\ 表示将工作目录设定为D盘的根目录。 mget 命令:下载多个文件。 mget命令的格式:mget filename [filename ……]。 mget命令支持通配符“*”和“?”,比如:mget *.mp3 表示下载FTP服务器 当前目录下的所有扩展名为mp3的文件。
work.ftp.protocol.FTPProtocol
SourceForge, JFtp: .FtpConnection
The Jakarta Project, Jakarta Commons/Net:
.ftp.FTPClient
6.6 Java FTP 协议网络编程
1.用Java 类库 2.用第3方类库
整理ppt
14
Java FTP类库
类:FtpClient 包:.ftp.*;
整理ppt
15
Java 第3方FTP类库
JScape, iNet Factory: com.jscape.inet.ftp.Ftp
/n software, IP*Works: ipworks.Ftp
Enterprise Distributed Technologies, Java FTP Client Library: .ftp.FTPClient
IBM alphaWorks, FTP Bean Suite:
整理ppt
20
Java FTP 工作流程
整理ppt
work.ftp.protocol.FTPProtocol
SourceForge, JFtp: .FtpConnection
The Jakarta Project, Jakarta Commons/Net:
.ftp.FTPClient
6.6 Java FTP 协议网络编程
1.用Java 类库 2.用第3方类库
整理ppt
14
Java FTP类库
类:FtpClient 包:.ftp.*;
整理ppt
15
Java 第3方FTP类库
JScape, iNet Factory: com.jscape.inet.ftp.Ftp
/n software, IP*Works: ipworks.Ftp
Enterprise Distributed Technologies, Java FTP Client Library: .ftp.FTPClient
IBM alphaWorks, FTP Bean Suite:
整理ppt
20
Java FTP 工作流程
整理ppt
第6章例外处理

《计算机网络编程之Java篇》 计算机网络编程之Java Java篇
教学课件
青海民族学院计算机科学与技术系 乜国雷 niegl@
FILE *fp; *fp; fp=fopen(filename,"rw"); fp=fopen(filename,"rw"); if(fp==NULL) if(fp==NULL){
第6章 Java例外处理 Java例外处理
主要内容
6.1 6.2 6.3 6.4 6.5 6.6 例外的概念及分类 引发例外 声明抛出例外 捕捉例外 定义自己的例外类型 小结
6.1 .1什么是例外 .1什么是例外
例外(Exception)也叫异常, 代码运行时出现的非正常状态, 例外(Exception)也叫异常, 是代码运行时出现的非正常状态 , 这种非正常状态 使程序无法或不能再正常地继续往下运行。 使程序无法或不能再正常地继续往下运行。 在Java编程语言中,例外就是程序在运行过程中由于硬件设备问题、软件设计错 Java编程语言中,例外就是程序在运行过程中由于硬件设备问题、 误、缺陷等导致的程序错误。在软件开发过程中,很多情况都将导致异常的产生, 缺陷等导致的程序错误。在软件开发过程中,很多情况都将导致异常的产生, 例如: (1) 想打开的文件不存在; (2) 网络连接中断; (3) 操作数超出预定范围; (4) 正在装载的类文件丢失; (5) 访问的数据库打不开; 在程序中产生例外的现象是非常普遍的。在Java编程语言中,对例外的处理有非 在程序中产生例外的现象是非常普遍的。在Java编程语言中,对例外的处理有非 常完备的机制。 例外本身作为一个对象,产生例外就是产生一个例外对象。这个对象可能由应用 程序本身产生,也可能由 Java 虚拟机产生,这取决于产生例外的类型。该例外 对象中包括了异常事件的类型以及发生异常时应用程序目前的状态和调用过程。
教学课件
青海民族学院计算机科学与技术系 乜国雷 niegl@
FILE *fp; *fp; fp=fopen(filename,"rw"); fp=fopen(filename,"rw"); if(fp==NULL) if(fp==NULL){
第6章 Java例外处理 Java例外处理
主要内容
6.1 6.2 6.3 6.4 6.5 6.6 例外的概念及分类 引发例外 声明抛出例外 捕捉例外 定义自己的例外类型 小结
6.1 .1什么是例外 .1什么是例外
例外(Exception)也叫异常, 代码运行时出现的非正常状态, 例外(Exception)也叫异常, 是代码运行时出现的非正常状态 , 这种非正常状态 使程序无法或不能再正常地继续往下运行。 使程序无法或不能再正常地继续往下运行。 在Java编程语言中,例外就是程序在运行过程中由于硬件设备问题、软件设计错 Java编程语言中,例外就是程序在运行过程中由于硬件设备问题、 误、缺陷等导致的程序错误。在软件开发过程中,很多情况都将导致异常的产生, 缺陷等导致的程序错误。在软件开发过程中,很多情况都将导致异常的产生, 例如: (1) 想打开的文件不存在; (2) 网络连接中断; (3) 操作数超出预定范围; (4) 正在装载的类文件丢失; (5) 访问的数据库打不开; 在程序中产生例外的现象是非常普遍的。在Java编程语言中,对例外的处理有非 在程序中产生例外的现象是非常普遍的。在Java编程语言中,对例外的处理有非 常完备的机制。 例外本身作为一个对象,产生例外就是产生一个例外对象。这个对象可能由应用 程序本身产生,也可能由 Java 虚拟机产生,这取决于产生例外的类型。该例外 对象中包括了异常事件的类型以及发生异常时应用程序目前的状态和调用过程。
《网络编程》课件

案例二:社交网络平台的架构与实现
总结词
社交网络平台的架构与实现需要关注可扩展性、可用性和可靠性等方面。
详细描述
社交网络平台需要支持数百万甚至数十亿的用户,因此其架构必须具备高度的可扩展性,能够随着用户数量的增 长而平滑地扩展。同时,为了提供不间断的服务,需要保证系统的可用性和可靠性,采取各种容错和备份措施。 此外,还需要考虑数据的安全性和隐私保护问题。
HTTP协议
01
HTTP协议是用于从服务器请求和发 送网页内容的协议。
02
HTTP协议是无状态的,这意味着服 务器不会为每个请求保持状态。
03
HTTP协议是请求/响应模型,客户端 发送请求,服务器返回响应。
HTML/CSS/JavaScript
HTML是用于创建网页结构的标记 语言。
CSS是用于描述网页样式和布局 的语言。
THANKS FOR
感谢您的观看
WATCHING
网络编程的历史与发展
起源
1
网络编程起源于20世纪60年代,随着ARPANET等 早期网络的兴起,人们开始研究如何实现不同计
算机之间的通信。
发展历程
2
随着互联网的普及和发展,网络编程语言和技术 不断涌现和发展,如Socket编程、HTTP协议等。
未来趋势
3
随着云计算、物联网等技术的兴起,网络编程将 更加注重安全性、隐私保护和异构网络的互联互
案例四:网络安全攻防实践
总结词
网络安全攻防实践涉及网络攻击和防御的策 略和技术,是保障网络安全的重要手段。
详细描述
网络安全攻防实践包括对各种网络攻击手段 的深入了解,如黑客攻击、病毒传播、拒绝 服务攻击等,同时也需要掌握相应的防御策 略和技术,如防火墙配置、入侵检测系统部 署、数据加密等。此外,还需要关注安全漏 洞的发现和修补,以及应急响应和灾难恢复 等方面的实践经验。
网络编程技术(西电课件)_第8章-1

阻塞与非阻塞通信小结
通信包括阻塞和非阻塞两种模式。在网络编程时, 选择通信模式是一件很重要的事情。对于不同的协 议,阻塞通信和非阻塞通信有不同的表现。 对于UDP协议而言,由于UDP没有发送缓存,因 此所有UDP协议即使在阻塞模式下也不会发生阻 塞。 对于面向连接的协议,在连接建立阶段,阻塞与 非阻塞也表现不一。在阻塞模式下,如果没有连接 请求到达,则等待连接调用将阻塞直到有连接请求 到达;但在非阻塞模式下,如果没有连接请求到达, 等待连接调用将直接返回。
int main(int argc, char* argv[]) { WSADATA wsaData; SOCKET sListen, sClient; SOCKADDR_IN local, client; int iAddrSize = sizeof(SOCKADDR_IN); DWORD dwThreadId; // 初始化Winsock动态链接库 WSAStartup(0x0202, &wsaData); // 创建套接字 sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
在连接建立阶段,不管是阻塞模式还是非阻塞 模式,发起连接请求的一方总是会使调用它的进 程阻塞,阻塞间隔最少等于到达服务器的一次往 返时间。 通信模式对应用程序的设计方法也有直接的影 响。在非阻塞模式下,应用程序必须不断地轮询 是否有数据到达或有连接请求到达。 这种轮询的方式耗费的CPU资源较大,要尽可 能避免使用,而在阻塞模式下则不存在这一问题, 但其缺点是进程或线程在执行I/O操作时将被阻 塞而不能执行其他的工作,因此在单进程或单线 程应用中不能使用这种模式。 在多线程应用中比较适合采用阻塞模式,一个 线程被阻塞不影响其他线程的工作。
通信网络程序设计(王晓东 西电版)第6章 TCP IP网络编程

除了给每个主机分配一个IP地址外,IP协议也规定给 每个路由器分配IP地址。事实上,每个路由器会被分配了 两个或更多个IP地址。一个路由器连接到多个物理网络, 每一个IP地址包含一个特定物理网络的网络号。这个IP地 址并不标识一台特定的计算机,而是标识一台计算机和一 个网络间的一个连接。
26
现在所有的主机都要求支持子网编址(RFC950, J.Mogul and J.Postel,1985),该功能要求,不仅要把IP地 址看成由单纯的一个网络号和一个主机号组成,还要把主 机号再分成一个子网号和主机号。这样做是因为A类和B 类地址为主机号分配了太多空间,但事实上在一个网络中 并不会有这么多主机,因此在NIC(Network Information Center)获得某个IP网络号后,就由系统管理员来决定是否 建立子网,以及分配多少位给子网号和主机号。例如,这 里有一个B类地址(140.252.0.0),在剩下的16位中,8位用 于子网号,8位用于主机号,其格式如图6-5所示。这样就 允许有254个子网,每个子网可有254台主机。
15
每个节点必须通过竞争媒体资源来进行传送,当超过一个 节点同时尝试发送时,碰撞就会发生(见7.1.1节所介绍的 CSMA/CD协议)。相反,无竞争的信道协议为每个需要通 信的节点分配专用的信道资源。无竞争的信道协议能够有 效地减少冲突,其代价是突发数据业务的信道利用率可能 会比较低。
不同的传输介质决定了所使用的MAC标准,如:以 太网遵循IEEE 802.3标准,令牌总线遵循IEEE 802.4标准, 令牌环网遵循IEEE 802.5标准,等等。本书重点关心的 IEEE 802.3标准定义了一种具有七个字段的MAC帧,包括:
以太网MAC协议承载了其他TCP/IP上层子协议。
26
现在所有的主机都要求支持子网编址(RFC950, J.Mogul and J.Postel,1985),该功能要求,不仅要把IP地 址看成由单纯的一个网络号和一个主机号组成,还要把主 机号再分成一个子网号和主机号。这样做是因为A类和B 类地址为主机号分配了太多空间,但事实上在一个网络中 并不会有这么多主机,因此在NIC(Network Information Center)获得某个IP网络号后,就由系统管理员来决定是否 建立子网,以及分配多少位给子网号和主机号。例如,这 里有一个B类地址(140.252.0.0),在剩下的16位中,8位用 于子网号,8位用于主机号,其格式如图6-5所示。这样就 允许有254个子网,每个子网可有254台主机。
15
每个节点必须通过竞争媒体资源来进行传送,当超过一个 节点同时尝试发送时,碰撞就会发生(见7.1.1节所介绍的 CSMA/CD协议)。相反,无竞争的信道协议为每个需要通 信的节点分配专用的信道资源。无竞争的信道协议能够有 效地减少冲突,其代价是突发数据业务的信道利用率可能 会比较低。
不同的传输介质决定了所使用的MAC标准,如:以 太网遵循IEEE 802.3标准,令牌总线遵循IEEE 802.4标准, 令牌环网遵循IEEE 802.5标准,等等。本书重点关心的 IEEE 802.3标准定义了一种具有七个字段的MAC帧,包括:
以太网MAC协议承载了其他TCP/IP上层子协议。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
包括CInternetConnection类及其派生类 CHttpConnection、CFtpConnection和 CGopherConnection类,
这些类帮助用户管理与Internet服务器的连接, 同时还提供一些函数完成和响应服务器的通 信
整理ppt
15
CInternetConnection:用于管理与Internet服务器的连接 CFtpConnection:用于管理与FTP服务器的连接,可以
使用消息收发API(MAPI:Message API) 开发Internet应 用程序:使用MAPI可以很方便的向其他应用程序发 送电子邮件、语音邮件或传真等功能
整理ppt
10
6.2 WinInet开发简介
用WinInet开发程 序的优点
隐藏协议细节,简化编程:可不必深入了解协议,而 使用WinSocket编程,需理解网络通信及协议基本原理
文 件 类 还 包 含 CFileFind 类 及 其 派 生 类 CFtpFileFind、CGopherFileFind类。CFileFind类 直接继承于CObject类,这些类实现对本地和 远程系统上的文件的搜索和定位工作。
整理ppt
17
CInternetFile:允许对使用Internet协议的远程系统中的 文件进行操作
EnableStatusCallback 建立异步操作的状态回调
ServiceTypeFromHandle 通过Internet句柄返回服务器类型
GetContext
获取Internet和应用程序会话句柄
Close
关闭Internet连接
CInternetSession类
整理ppt 成员函数
14
6.3.2 CInternetConnection类
对服务器上的文件和目录进行直接操作
CGopherConnection:管理与Gopher服务器的连接 CHttpConnection:管理与HTTP服务器的连接
连接类及其 派生类
整理ppt
16
6.3.3 CInternetFile类
包 括 CInternetFile 类 及 其 派 生 类 CHttpFile 、 CGopherFile。这些类实现对远程系统上的文 件的存取工作。
熟悉的编程接口:WinInet API函数和很多WinAPI函数很 相似,这对有编程经验的程序员来说是很方便的。
稳定性好,不要求程序与底层直接联系:WinInet隐藏 了协议的具体细节,使得程序不必直接使用各种协议
支持数据缓存:WinInet函数为所有的协议提供缓存 能力,程序员只需关心数据而不用去管理数据缓存
整理ppt
13
QueryOption
提供一个可能的错误检测判断
SetOption
设置Internet会话的选项
OpenURL
设置URL,并对其进行分析
GetFtpConnection
打开一个FTP会话并进行连接
GetHttpConnection
打开HTTP服务器并进行连接
GetGopherConnection 打开Gopher服务器并进行连接
整理ppt
客户端TCP连接 x.x.x.x 21 根据回显输入 USER user1 PASS xxxxxx LIST
GET file.txt
4
这是第五章利用CAsyncSocket类实现的TCP客户端
按照FTP协议要求,给FTP服务器发送用户名
6.1 Internet应用程序开发的几种类型
整理ppt
12
6.3.1 CInternetSession类
CInternetSession类直接继承自CObject类, 该类用来建立与某个Internet服务器的会 话。还可以向代理服务器描述连接,如 果应用程序所使用的Internet连接必须保 持一段时间,则可以在CWinApp类中创 建相应的CInternetSession成员
使用WinInet类开发Internet应用程序:WinInet类支持 HTTP、FTP和Gopher等标准的协议
使用Windows Socket开发Internet应用程序:Winsock 标准定义了一个DLL接口来连接Internet,MFC使用 CAsyncSocket和CSocket类对接口进行了封装。
CGopherFile:为在Gopher服务器上进行文件检索和读取 操作提供支持
支持多线程:由于WinInet函数在内部处理多线程的并 发问题,因此WinInet函数支持多线程,在多线程中可
以调用各种WinInet函数而不用担心发生问题或死锁
整理ppt
11
6.3 WinInet类介绍
WinInet类是一个总称,目前的版本中分为四组 • CInternetSession类 • CInternetConnection (连接类) • CFileFind类(Internet文件查找类) • CInternetFile类和CGopherLocator类
来支持HTTP、FTP或Gopher等类型的服
务
整理ppt
1
你了解FTP协议吗?
整理ppt
2
你了解FTP协议吗?
FTP客户端 = TCP客户端 + 固定文字响应规范
整理ppt
3
FTP协议
服务器nnected. Waiting for response.
220 Microsoft FTP Service 331 Password required for user1. 230 User user1 logged in. 150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete. Transfer done: 125 bytes in 0.016 secs (7.81 k/sec)
第6章 开发Internet应用程序
Internet应用程序的开发通常包括
Internet服务端和客户端的应用程序,
Microsoft提供了大量的API函数来支持这
两种程序,客户端应用程序主要通过
Internet协议(如Gopher,FTP,HTTP等)来从
网络服务器上获取数据,提供访问
Internet的功能,服务器端应用程序则用
这些类帮助用户管理与Internet服务器的连接, 同时还提供一些函数完成和响应服务器的通 信
整理ppt
15
CInternetConnection:用于管理与Internet服务器的连接 CFtpConnection:用于管理与FTP服务器的连接,可以
使用消息收发API(MAPI:Message API) 开发Internet应 用程序:使用MAPI可以很方便的向其他应用程序发 送电子邮件、语音邮件或传真等功能
整理ppt
10
6.2 WinInet开发简介
用WinInet开发程 序的优点
隐藏协议细节,简化编程:可不必深入了解协议,而 使用WinSocket编程,需理解网络通信及协议基本原理
文 件 类 还 包 含 CFileFind 类 及 其 派 生 类 CFtpFileFind、CGopherFileFind类。CFileFind类 直接继承于CObject类,这些类实现对本地和 远程系统上的文件的搜索和定位工作。
整理ppt
17
CInternetFile:允许对使用Internet协议的远程系统中的 文件进行操作
EnableStatusCallback 建立异步操作的状态回调
ServiceTypeFromHandle 通过Internet句柄返回服务器类型
GetContext
获取Internet和应用程序会话句柄
Close
关闭Internet连接
CInternetSession类
整理ppt 成员函数
14
6.3.2 CInternetConnection类
对服务器上的文件和目录进行直接操作
CGopherConnection:管理与Gopher服务器的连接 CHttpConnection:管理与HTTP服务器的连接
连接类及其 派生类
整理ppt
16
6.3.3 CInternetFile类
包 括 CInternetFile 类 及 其 派 生 类 CHttpFile 、 CGopherFile。这些类实现对远程系统上的文 件的存取工作。
熟悉的编程接口:WinInet API函数和很多WinAPI函数很 相似,这对有编程经验的程序员来说是很方便的。
稳定性好,不要求程序与底层直接联系:WinInet隐藏 了协议的具体细节,使得程序不必直接使用各种协议
支持数据缓存:WinInet函数为所有的协议提供缓存 能力,程序员只需关心数据而不用去管理数据缓存
整理ppt
13
QueryOption
提供一个可能的错误检测判断
SetOption
设置Internet会话的选项
OpenURL
设置URL,并对其进行分析
GetFtpConnection
打开一个FTP会话并进行连接
GetHttpConnection
打开HTTP服务器并进行连接
GetGopherConnection 打开Gopher服务器并进行连接
整理ppt
客户端TCP连接 x.x.x.x 21 根据回显输入 USER user1 PASS xxxxxx LIST
GET file.txt
4
这是第五章利用CAsyncSocket类实现的TCP客户端
按照FTP协议要求,给FTP服务器发送用户名
6.1 Internet应用程序开发的几种类型
整理ppt
12
6.3.1 CInternetSession类
CInternetSession类直接继承自CObject类, 该类用来建立与某个Internet服务器的会 话。还可以向代理服务器描述连接,如 果应用程序所使用的Internet连接必须保 持一段时间,则可以在CWinApp类中创 建相应的CInternetSession成员
使用WinInet类开发Internet应用程序:WinInet类支持 HTTP、FTP和Gopher等标准的协议
使用Windows Socket开发Internet应用程序:Winsock 标准定义了一个DLL接口来连接Internet,MFC使用 CAsyncSocket和CSocket类对接口进行了封装。
CGopherFile:为在Gopher服务器上进行文件检索和读取 操作提供支持
支持多线程:由于WinInet函数在内部处理多线程的并 发问题,因此WinInet函数支持多线程,在多线程中可
以调用各种WinInet函数而不用担心发生问题或死锁
整理ppt
11
6.3 WinInet类介绍
WinInet类是一个总称,目前的版本中分为四组 • CInternetSession类 • CInternetConnection (连接类) • CFileFind类(Internet文件查找类) • CInternetFile类和CGopherLocator类
来支持HTTP、FTP或Gopher等类型的服
务
整理ppt
1
你了解FTP协议吗?
整理ppt
2
你了解FTP协议吗?
FTP客户端 = TCP客户端 + 固定文字响应规范
整理ppt
3
FTP协议
服务器nnected. Waiting for response.
220 Microsoft FTP Service 331 Password required for user1. 230 User user1 logged in. 150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete. Transfer done: 125 bytes in 0.016 secs (7.81 k/sec)
第6章 开发Internet应用程序
Internet应用程序的开发通常包括
Internet服务端和客户端的应用程序,
Microsoft提供了大量的API函数来支持这
两种程序,客户端应用程序主要通过
Internet协议(如Gopher,FTP,HTTP等)来从
网络服务器上获取数据,提供访问
Internet的功能,服务器端应用程序则用