1、14.1 网络通信及开发基础 网络通信是指应用程序需要与网络中其他系统上的应用程序之间进行通讯。进行网络编程的开发,必须要了解网络通信的基本概念。14.2.2 使用WinSock进行无连接的通信 WinSock提供了对UDP(用户数据报协议)的支持,通过UDP协议可以向指定IP地址的主机发送数据,同时也可以从指定IP地址的主机接收数据,发送和接收方处于相同的地位没有主次之分。14.2.3 无连接通信实例 本节给出一个使用CAsyncSocket类实现无连接的数据通信的简单实例。在服务器端,服务启动后,创建的Socket向客户端固定的端口定时(间隔2秒)发送一个计数值;在客户端,创建的Socke
2、t从服务器端固定的端口定时(间隔2秒)接收数据,并显示数据。(具体内容请参照本书)14.2.4 使用WinSock进行有连接的通信 WinSock提供了对TCP(传输控制协议)的支持,通过TCP协议可以与指定IP地址的主机建立,同时利用建立的连接可以双向的交换数据。使用CAsyncSocket类实现有连接数据交换也不复杂,与无连接通信不同,有连接的通信中必需有一方扮演服务器的角色等待另一方(客户方)的连接请求,所以服务器方需要建立一个监听套接字,然后在此套接字上等待连接。当连接建立后会产生一个新的套接字用于通信。而客户方在创建套接口后只需要简单的调用连接函数就可以创建连接。14.2.5 有连接
3、通信实例 本节给出一个使用CSocket类实现有连接的数据通信的简单实例。在服务器端,服务启动后,创建的Socket开始监听客户端的连接请求,并处于闭塞状态(无法进行其他操作),当收到客户端的连接请求时,创建一个通信套接字,定时(间隔2秒)向外发送一个计数值,同时关闭监听套接字。14.3 网络程序设计与开发 对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。通过前面的介绍相信读者对网络程序的总体结构有了直观的认识。在本节,将重点介绍Socket事件机制,通过它深入网络程序开发。14.3.1 网络程序的一些概念 网络程序往往涉及到很多概念,诸如同步/异步、阻塞/非阻塞等。初
4、学者往往感到迷惑不清,下面对此作一下简单介绍。14.3.2 Socket事件 在实际应用中,程序员一般不直接使用CAsyncSocket类,而是自己定义他们的派生类,主要原因就是需要捕获Socket激活的事件,如Socket连接建立、数据接收完毕等。(具体内容请参照本书)14.3.3 Socket事件的激发控制 默认的情况下,CAsyncSocket类会调用所有的可重载函数,而CSocket类一个也不调用。在实际应用中,往往需要控制Socket对特定事件函数的调用,可采用如下两种方式实现对这些事件函数激发的控制。(具体内容请参照本书)14.3.4 Socket信息的获取与处理 有时,应用程序需
5、要知道Socket的状态信息,如对方程序的网络地址和端口、Socket是否处于阻塞状态等。14.3.5 网络程序开发实例 本节将给出一个使用CAsyncSocket类的事件机制实现一个简单的C/S结构的网络程序实例。客户端与服务器建立连接后,可以向服务器端发送信息,而服务器收到消息后,将消息回发至客户端,在客户端的列表框中显示。通过本实例,掌握CAsyncSocket类的事件的触发与处理操作。14.4 WinInet开发Internet客户端程序 前面介绍了Winsock网络编程,Winsock提供了Windows应用程序之间实现TCP/IP通信的标准。为了简化客户/服务者(Client/Se
6、rver)模式进行Internet编程,VC中还提供了WinInet类,它提供了HTTP、FTP、Gopher等应用层协议的客户端接口。14.4.1 MFC WinInet开发包 Miscrosoft所提供的WinInet开发包是作为ActiveX技术中的一部分,后来Miscrosoft对WinInet API进行了包装并提供了相应的MFC类。WinInet开发包的作用是提供了对HTTP、FTP、Gopher协议的支持,使开发者在开发Internet程序时避免编写底层协议相关的代码。此外WinInet很多功能都是与IE有联系的,比如说,可以使用IE中的设置和使用IE缓存中的数据。14.4.2
7、WinInet开发客户端程序的流程 使用WinInet进行客户端开发的一般流程可分为建立连接、发送请求、关闭连接三个阶段,14.4.3 WinInet开发HTTP客户端程序实例 本节将给出一个使用WinInet通过HTTP协议读取网上文件的实例,通过本实例,了解使用WinInet开发客户端程序的基本过程。14.5 简单的Web浏览器开发 在Miscrosoft操作系统中,用户可以使用Internet Explorer或Netscape Navigator浏览HTML网页。而在Visual C+中,也提供了对HTML网页编程的支持,可以通过VC编程,实现自己的浏览器。在Visual C+中,可以
8、有两种方法实现Web浏览器:使用WebBrowser控件和CHtmlView视图类。其中WebBrowser控件为一个ActiveX控件,其具体应用本书不作讨论。14.5.1 CHtmlView视图类简介 在Visual C+6.0中,提供了CHtmlView视类,它派生于CFormView类,该类提供了常用的浏览器编程功能。实际上,CHtmlView类就是在CFormView对象上放了一个WebBrowser控件,把WebBrower控件打成一个易于使用的包,使其非常适合MFC文档/视图结构的应用。14.5.2 浏览器开发实例 本节将使用CHtmlView类实现一个类似IE的简单的网页浏览器,通过本实例,掌握CHtmlView类的使用。(具体内容请参照本书)26 结束语结束语