《Delphi程序设计及实验指导》电子教案 第10章

上传人:E**** 文档编号:89400910 上传时间:2019-05-24 格式:PPT 页数:45 大小:309.50KB
返回 下载 相关 举报
《Delphi程序设计及实验指导》电子教案 第10章_第1页
第1页 / 共45页
《Delphi程序设计及实验指导》电子教案 第10章_第2页
第2页 / 共45页
《Delphi程序设计及实验指导》电子教案 第10章_第3页
第3页 / 共45页
《Delphi程序设计及实验指导》电子教案 第10章_第4页
第4页 / 共45页
《Delphi程序设计及实验指导》电子教案 第10章_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《《Delphi程序设计及实验指导》电子教案 第10章》由会员分享,可在线阅读,更多相关《《Delphi程序设计及实验指导》电子教案 第10章(45页珍藏版)》请在金锄头文库上搜索。

1、第十章 Internet编程,10.1 基本概念 10.2 Socket编程 10.3 制作浏览器 习 题,10.1 基本概念,10.1.1 计算机网络、Internet和Intranet 1计算机网络 (1) 定义 计算机网络是利用通信手段,把地理上分散的、能够以相互共享资源(包括硬件、软件和数据等)的方式有机地连接起来的、而各自又具备独立功能的计算机系统的集合。 (2) 主要功能 数据通信 资源共享 实现分布式的信息处理 提高计算机系统的可靠性和可用性,10.1 基本概念,2Internet Internet的全称是Inter Network,译为“因特网”,也称为国际互联网,简称为互联网

2、。因特网是一个把全世界范围内的众多计算机、人、数据库、软件和文件连接在一起的、通过一个共同的通信协议(TCP/IP协议)相互会话的网络。 它能提供的服务主要有: 电子邮件(E-mail) WWW(World Wide Web)服务 文件传输服务(FTP) 远程登录(Telnet) 布告栏服务(BBS),10.1 基本概念,3. Intranet Intranet称为企业内部网,它是基于TCP/IP协议,使用环球网WWW工具、采用防止外界侵入的安全措施、为企业内部服务,并有Internet功能的企业内部网络。Intranet是一种使用Internet技术和标准组建的企业内部计算机网络,它可以与I

3、nternet互连,也可以不与Internet互连。 Intranet上的信息分为两类:企业内部信息和向社会公开的大众信息;企业内部信息不允许任何外部用户访问的信息,它主要用于企业内部的信息共享和协同工作。Intranet根据企业安全要求,设置防火墙、安全代理等,用以保护企业内部信息,防止外界侵入。,10.1 基本概念,10.1.2 HTML 超文本标记语言HTML(Hyper Text Markup Language)是制作Web信息的语言,是设计制作页面的基础。 作为一种标记语言而不是编程语言,HTML主要用来创建与系统平台无关的文档。所以按照HTML语法规则建立的文档可以运行于不同硬件和

4、操作系统平台上。,10.1 基本概念,HTML文档的总体框架为: 头部元素、元素属性及内容 正文元素、元素属性及内容 ,10.1 基本概念,10.1.3 TCP/IP协议、HTTP协议 为共享计算机网络的资源,在网上交换信息,需要实现不同系统中的实体间的通信。实体包括用户应用程序、文件包传送、数据库管理系统、电子邮件设备及终端等。计算机之间的数据通信必须遵守某种约定和规程,这些约定和规程就是网络通信协议。Internet使用的通信协议是TCP/IP。超文本传输协议HTTP位于TCP/IP协议的顶层,是专门为传输HTML页面设计的一种网络协议,即HTTP是HTML的基本协议,浏览器和服务器使用H

5、TTP传输HTML文档。,10.1 基本概念,1TCP/IP协议 OSI(开放系统互联)是ISO制定的网络系统框架结构,是一切网络互联的基础模型。OSI参考模型把整个网络的通信功能划分为7个层次,每个层次完成各自的功能,通过各层间的接口和功能的组合与其相邻层连接,从而实现不同系统之间、不同结点之间的信息传输。表10-1是OSI参考模型中7个层次的名称和它们的主要功能。,10.1 基本概念,表10-1 OSI参考模型中的7个层次,10.1 基本概念,TCP/IP拥有一套完整而系统的协议标准,它采用信息打包的方法来简化各种不同类型的计算机之间的通信传输。互联网中使用的协议对标准的OSI七层协议进行

6、了简化,它没有表示层和会话层,这两层的功能由应用层提供。TCP/IP一般分为4层,其功能见表10-2所示,它的体系结构如图10-1所示。,10.1 基本概念,图10-1 TCP/IP协议的体系结构,10.1 基本概念,2HTTP协议 超文本传输协议HTTP属于应用层协议,位于TCP/IP协议的顶层,在设计和使用HTTP协议时需要以TCP/IP协议中的其他协议为基础。例如,它要通过DNS进行域名解析,要建立TCP连接才能进行HTML文档传输。,10.1 基本概念,表10-2 TCP/IP各层的主要功能,10.1 基本概念,10.1.4 线程 1线程的概念 线程是Win32进程中的最小执行单元,线

7、程由一个堆栈、CPU寄存器的状态和系统调度列表中的一个入口组成,每个线程都可以访问进程中的所有资源。 线程与进程的差别主要体现在两个方面: (1) 线程和进程虽然都是系统的基本执行单元,线程的划分单位比进程小,因此支持多线程的系统比只支持多进程的系统并发度高。 (2) 进程将内存作为自己独享的资源,每个进程都有自己的内存空间;而线程共享内存空间,并通过共享内存交换信息,因此有利于提高系统效率。,10.1 基本概念,2TThread类 (1) TThread类 TThread类是直接从Tobject继承下来的,它是抽象类,即不能创建TThread类的实例,而只能创建TThread派生类的实例,即

8、创建线程对象。 (2) 与VCL同步 大多数VCL都要求在任一时刻只允许一个线程访问它,因此在Delphi中使用多线程,还有1个重要的注意事项,即对VCL访问只能在主线程中进行,这表明所有与用户交互的代码只能在主线程中。同时,Delphi为了使线程中的方法也能在主线程中执行,在TThread中设置了1个Synchronize()方法,该方法声明如下:,10.1 基本概念,procedure Synchronize(Method:TThreadMethod); Synchronize()方法的参数就是用来传递需要在主线程执行的线程中的方法。例如若 TestThread线程对象中有名为PutRes

9、ult()的方法需在主线程中执行,则在TestThread的 Execute()方法中加入Synchronize(PutResult)语句即可。,10.1 基本概念,3线程的终止 当线程对象的Execute()方法执行完毕后,就认为该线程终止了,此时Delphi会自动调用一个标准例程EndThread(),该例程将再调用API函数ExitThread(),由ExitThread()来清除线程所占用的栈。另外,虽然进程结束时将自动清除所有的线程对象,但线程对象不再使用时,最好在应用程序中及时清除,这样可以提高内存使用效率。线程终止时,将触发OnTerminate事件,所以可以利用在退出Execu

10、te()之前将FreeOnTerminate属性置为true的方法来及时清除线程对象。,10.1 基本概念,4线程同步 编写多线程应用程序时,需要控制好线程间的同步资源访问,以保证线程的安全运行。 所谓线程同步,简单说就是协调线程间的执行时序。Win32 API提供了1组同步对象,包括信号量、互斥、临界区和事件等,来解决线程的同步问题。Delphi分别将事件对象和临界区对象封装为TEvent和TCriticalSection对象,使得事件和临界区更易使用。但如果要在Delphi程序中使用信号量和互斥等对象,还必须借助于复杂的Win32 API函数。,10.2 Socket编程,Socket(套

11、接字)是在UNIX系统上提出来的,一开始主要是用于本地通信,但很快就应用到C/S体系上。Microsoft公司在此基础上创建了Winsock组件,专门用于Windows接口,与Socket完全兼容。Winsock组件对用户来说是不可见的,它提供了访问TCP和UDP网络服务的方便途径。Delphi、Visual Basic、Visual C+等的开发人员都可使用它。为编写客户或服务器应用程序,不必了解TCP的细节或调用低级的Winsock API,通过设置组件的属性并调用其方法就可轻易连接到一台远程机器上,并且还可双向交换数据。下面先介绍利用Socket进行编程的基本知识。,10.2 Socke

12、t编程,10.2.1 工作原理 套接字Socket 接口是TCP/IP网络的API。套接字接口定义了多个函数和例程,程序员可以使用这些函数和例程开发TCP/IP的应用程序。在使用Socket组件时,首先需要考虑使用什么协议,可以使用的协议包括TCP和UDP。两种协议之间的重要区别在于它们的连接状态:TCP协议是有连接的协议,在开始数据传输之前,用户必须先建立连接;UDP协议是一种无连接协议,数据传输时,两台计算机之间没有明确的连接。,10.2 Socket编程,1TTcpClient组件 TTcpClient组件的主要属性如下: (1) Active属性:该属性表示组件是否处于激活状态。 (2

13、) BlockMode属性:该属性设置或返回阻塞模式。 (3) RemoteHost属性:该属性用来指定远程计算机的IP地址。 (4) RemotePort属性:该属性用来指定远程计算机的端口。,10.2 Socket编程,2TTcpServer组件 TTcpServer组件的主要属性: (1) LocalHost属性:该属性用来指定客户端计算机的IP地址。 (2) LocalPort属性:该属性用来指定客户端计算机端口。 这两个属性与TTcpClient组件的RemoteHost属性和RemotePort属性的值相对应。TTcpServer组件的属性、方法和事件与TTcpClient组件的都

14、很相似,,10.2 Socket编程,10.2.2 建立客户端Socket 1组件属性设置 在Form中添加一个TTcpClient组件,应用程序就变成了一个TCP/IP客户端。TTcpClient组件的RemoteHost属性用于指定服务器的主机名,如http:/,或者指定主机的IP地址,如202.197.9.38,这两种方式是等价的。 要连接服务器,还要指定服务器端所使用的端口号。设置RemotePort属性来指定端口号。,10.2 Socket编程,2建立连接 指定了服务器端的主机名或IP地址以及端口号后,只要调用TTcpClient组件的Open方法或者把Active属性设为true,

15、客户端Socket就会向服务器端Socket提出连接请求。如果服务器端Socket正好处于监听状态,就会自动接受请求并建立连接。,10.2 Socket编程,3 数据传输 一旦服务器端接受了客户端的连接请求,客户端就可以向服务器端发送数据。这时客户端与服务器端之间就拥有了一个Socket,通过此Socket,双方实现通信。所以Socket属性很重要,它又拥有很多的方法,用其中的几个简单方法,就可以实现数据的发送与接收。客户端用SendTo方法来实现数据传输。,10.2 Socket编程,4断开连接 在客户端断开连接很简单,只要调用TTcpClient组件的Close方法或Disconnect方

16、法。,10.2 Socket编程,10.2.3 建立服务器端Socket 1组件属性设置 把一个TTcpServer组件放到From上,应用程序就变成了一个TCP/IP服务器端。 2建立连接 指定了客户端的端口号后,就可以调用TTcpServer组件的Open方法开始监听。如果在设计期把Active属性设为true,服务器端程序启动的时候就会自动进入监听状态。也就是说,把Active属性设为true与调用Open是等价的。,10.2 Socket编程,3数据传输 在服务器端接受数据,可以利用TTcpServer组件的ReceiveFrom方法。 4断开连接 如果要断开连接,只要在服务器端用Close或者把Active属性设为false。但是这将导致所有对客户的连接都断开,并退出监听状态。如果在客户端用Close,将只断开该客户与服务器的连接,不影响其他客户的连接。,10.2 Socket编程,【例10-1】设计一个程序要求具有以下功能:服务器在端口3000上接收客户连接,连接建立后,每个客户都以一个单

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号