1、网络编程入门网络编程入门授课教师:授课教师:网络编程网络编程http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.zg- http:/www.skf- http:/www.nsk- http:/www.fag- http:/www.ntn- http:/ http:/ http:/ http:/
2、http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/网络编程技术网络编程技术导入导入v计算机和网络通信的出现给人们的生活带来了革计算机和网络通信的出现给人们的生活带来了革命性的变化命性的变化v计算机的硬件离不开软件,通信软件使计算机网计算机的硬件离不开软件,通信软件使计算机网络硬件的具体功能得以实现络硬件的具体功能得以实现vMicrosoft Visual C+是由微软开发的可视是由微软开发的可视化软件开发平台,具有强大面向对象功能,可以化软件开发平台,具有强大面向对象功能,可以开发开发网络通信软件开发开发网络通信
3、软件 http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.zg- http:/www.skf- http:/www.nsk- http:/www.fag- http:/www.ntn- http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- ht
4、tp:/ http:/ http:/ http:/ http:/ http:/网络编程技术网络编程技术本章要点本章要点vVisual C+ 6.0开发平台的基本使用技巧开发平台的基本使用技巧v网络通信编程基本原理网络通信编程基本原理v常见网络工具软件分析常见网络工具软件分析http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ ht
5、tp:/ http:/www.zg- http:/www.skf- http:/www.nsk- http:/www.fag- http:/www.ntn- http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/网络编程技术网络编程技术Visual C+ 6.0开发平台开发平台vVisual C+ 6.0是微软推出的产品,它提供了是微软推出的产品,它提供了强大的编译能力以及良好的界面操作性。能够对强大的编译能力以及良好的界面操作性。能够对C+程序设计提供完善的编
6、程环境。程序设计提供完善的编程环境。vVisual C+ 6.0是可视化软件开发平台,具有是可视化软件开发平台,具有强大面向对象功能强大面向对象功能v在此平台下可以利用微软已经封装好的基本类库,在此平台下可以利用微软已经封装好的基本类库,开发网络通信软件。开发网络通信软件。 http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ h
7、ttp:/ http:/www.zg- http:/www.skf- http:/www.nsk- http:/www.fag- http:/www.ntn- http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/网络编程技术网络编程技术使用使用Visual C+ 6.0创建一个新工程创建一个新工程v第一步:启动并进入第一步:启动并进入Visual C+ 6.0的集成开的集成开发环境。发环境。网络编程技术网络编程技术创建一个新工程创建一个新工程v选择选择“文件文
8、件”“新建新建”,在弹出的对话框中选,在弹出的对话框中选择新建工程的类型择新建工程的类型网络编程技术网络编程技术创建一个新工程创建一个新工程网络编程技术网络编程技术创建一个新工程创建一个新工程网络编程技术网络编程技术新工程的运行结果新工程的运行结果http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ww
9、w.zg- http:/www.skf- http:/www.nsk- http:/www.fag- http:/www.ntn- http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/网络编程技术网络编程技术Visual C+ 6.0项目文件项目文件网络编程技术网络编程技术Visual C+ 6.0项目中的主要文件项目中的主要文件v .dsp:VC开发环境生成的工程文件,非常重要。开发环境生成的工程文件,非常重要。v .dsw:VC开发环境生成的开发环境生成的
10、WorkSpace文件,用来把多个工文件,用来把多个工程组织到一个程组织到一个WorkSpace中。中。v .ncb:ncb是是“No Compile Browser”的缩写,其中存放的缩写,其中存放了供了供ClassView、WizardBar和和Component Gallery使使用的信息,由用的信息,由VC开发环境自动生成。当自动完成功能出问题开发环境自动生成。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。时可以删除此文件。编译工程后会自动生成。v .rc:资源定义文件。:资源定义文件。v .clw:ClassWizard生成的用来存放类信息的文件。生成的用来存放类信息的
11、文件。v .aps:存放二进制资源的中间文件,:存放二进制资源的中间文件,VC把当前资源文件转换把当前资源文件转换成二进制格式,并存放在成二进制格式,并存放在APS文件中,以加快资源装载速度。文件中,以加快资源装载速度。v .h:用:用C/C+语言编写的头文件,通常用来定义数据类型,语言编写的头文件,通常用来定义数据类型,声明变量、函数、结构和类。声明变量、函数、结构和类。v .cpp:用:用C+语言编写的源代码文件。语言编写的源代码文件。网络编程技术网络编程技术Visual C+ 6.0调试工具调试工具v调试工具 网络编程技术网络编程技术网络通信基础网络通信基础面向连接的服务面向连接的服务
12、VS 面向无连接的服务面向无连接的服务v面向连接的服务:发送信息的源计算机必须首先面向连接的服务:发送信息的源计算机必须首先与接收信息的目的计算机建立连接。一旦连接建与接收信息的目的计算机建立连接。一旦连接建立起来立起来, 相互连接的计算机就可以进行数据交换。相互连接的计算机就可以进行数据交换。它是可靠的。它是可靠的。 v面向无连接的服务:发送信息的计算机把数据以面向无连接的服务:发送信息的计算机把数据以一定的格式封装在数据帧中,把目的地址和源地一定的格式封装在数据帧中,把目的地址和源地址加在信息头上,然后把帧交给网络进行发送。址加在信息头上,然后把帧交给网络进行发送。无连接服务是不可靠的。无
13、连接服务是不可靠的。http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.zg- http:/www.skf- http:/www.nsk- http:/www.fag- http:/www.ntn- http:/ http:/ http:/ http:/ http:/ http:/www.xun
14、chi- http:/ http:/ http:/ http:/ http:/ http:/网络编程技术网络编程技术计算机网络分层计算机网络分层网络编程技术网络编程技术TCP/IP协议协议网络编程技术网络编程技术主要协议在网络层中的分布情况主要协议在网络层中的分布情况网络编程技术网络编程技术主要网络协议主要网络协议v TCP协议:传输控制协议协议:传输控制协议(Transmission Control Protocol)。是面向连接的协议,它可以提供可靠传输。是面向连接的协议,它可以提供可靠传输服务。服务。v UDP协议:用户数据报协议协议:用户数据报协议(User Datagram Prot
15、ocol)。UDP协议提供了用户进程的无连接服务。协议提供了用户进程的无连接服务。v HTTP协议:超文本传输协议协议:超文本传输协议(Hypertext Transfer Protocol)。提供了网页浏览服务,是现在应用最广的。提供了网页浏览服务,是现在应用最广的协议之一。协议之一。v FTP协议:文件传输控制协议协议:文件传输控制协议(File Transfer Protocol)。提供了文件的传输功能和一些常用的文件。提供了文件的传输功能和一些常用的文件操作。操作。v SMTP协议:简单邮件传输协议协议:简单邮件传输协议(Simple Mail Transfer Protocol)。提
16、供了邮件的传送服务。提供了邮件的传送服务。网络编程技术网络编程技术主要网络协议主要网络协议v TELNET协议:终端协议协议:终端协议(Telnet Terminal Protocol)。提供了远程登录服务,允许用户以虚拟终。提供了远程登录服务,允许用户以虚拟终端方式访问远程主机。端方式访问远程主机。v ICMP协议:网间报文控制协议协议:网间报文控制协议(Internet Control Message Protocol),它的功能是处理,它的功能是处理IP主机或者路主机或者路由器之间的差错和传输控制。由器之间的差错和传输控制。v ARP协议:地址解析协议协议:地址解析协议(Address
17、Resolution Protocol)。它的基本功能就是通过目标设备的。它的基本功能就是通过目标设备的IP地址,地址,查询目标设备的查询目标设备的MAC地址,以保证通信的顺利进行。地址,以保证通信的顺利进行。v RARP协议:反向地址解析协议协议:反向地址解析协议(Reverse Address Resolution Protocol)。负责把主机硬件地址映射为。负责把主机硬件地址映射为网络地址,也就是把网络地址,也就是把MAC地址转化为对应的地址转化为对应的IP地址。地址。RARP协议的功能与协议的功能与ARP协议恰恰相反。协议恰恰相反。网络编程技术网络编程技术网络程序设计模型网络程序设计
18、模型C/S结构结构vC/S结构是网络程序设计的基本模型,它是一个结构是网络程序设计的基本模型,它是一个典型的分布式结构。典型的分布式结构。v在在C/S结构中,服务器程序始终处于监听状态,结构中,服务器程序始终处于监听状态,当被监听的服务端口处有服务请求时,立即响应当被监听的服务端口处有服务请求时,立即响应客户的服务请求。客户的服务请求。v客户机在发出服务请求信号前,必须指定服务器客户机在发出服务请求信号前,必须指定服务器地址和端口号才能获得相应的服务。地址和端口号才能获得相应的服务。vC/S结构的优点是能充分发挥客户端结构的优点是能充分发挥客户端PC的处理的处理能力,很多工作可以在客户端处理后
19、再提交给服能力,很多工作可以在客户端处理后再提交给服务器,客户端响应速度快。务器,客户端响应速度快。 http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.zg- http:/www.skf- http:/www.nsk- http:/www.fag- http:/www.ntn- http:/
20、http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/网络编程技术网络编程技术服务器端:服务器端:1、打开一通信通道并告知本地主机,它愿意在某、打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。一个公认地址上接收客户请求。2、等待客户请求到达该端口。、等待客户请求到达该端口。3、接收到重复服务请求,处理该请求并发送应答、接收到重复服务请求,处理该请求并发送应答信号。信号。4、返回第二步,等待另一客户请求、返回第二步,等待另一客户请求5、关闭服务器。、关闭服务
21、器。网络编程技术网络编程技术客户端:客户端:1、打开一通信通道,并连接到服务器所在主机的、打开一通信通道,并连接到服务器所在主机的特定端口。特定端口。2、向服务器发送服务请求报文,等待并接收应答;、向服务器发送服务请求报文,等待并接收应答;继续提出请求继续提出请求3、请求结束后关闭通信通道并终止。、请求结束后关闭通信通道并终止。网络编程技术网络编程技术请求和应答请求的基本过程请求和应答请求的基本过程 网络编程技术网络编程技术套接字编程的基本原理套接字编程的基本原理什么是套接字?什么是套接字?v套接字(套接字(socket)是网络计算机与应用程序之)是网络计算机与应用程序之间发送和接收数据的方式
22、的一种抽象描述。间发送和接收数据的方式的一种抽象描述。v它描述了两个通信点之间的连接。确切的说,套它描述了两个通信点之间的连接。确切的说,套接字接字(socket)是用来实现主机和主机通信的一是用来实现主机和主机通信的一个接口。个接口。v通过它可以完成主机间的通信操作,它位于协议通过它可以完成主机间的通信操作,它位于协议之上,屏蔽了底层的协议,让用户能够实现各种之上,屏蔽了底层的协议,让用户能够实现各种类型的通信操作。类型的通信操作。 网络编程技术网络编程技术最常用的套接字类型有三种最常用的套接字类型有三种 v流流(Stream)套接字套接字用于提供面向连接、可靠的数据传输服务。用于提供面向连
23、接、可靠的数据传输服务。 v数据报数据报(Datagram)套接字套接字提供了一种无连接的服务,是不可靠的。提供了一种无连接的服务,是不可靠的。 v原始原始(Raw)套接字套接字原始套接字可以读写内核没有处理的原始套接字可以读写内核没有处理的IP数据包。数据包。网络编程技术网络编程技术讨论:讨论:v我们经常使用的网络通信软件有哪些?我们经常使用的网络通信软件有哪些?v我们机房使用的电子教室软件有哪些功能?我们机房使用的电子教室软件有哪些功能?http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.zg- http:/www.skf- http:/www.nsk- http:/www.fag- http:/www.ntn- http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/