18.5 替代wxSocket

虽然wxSocket提供了很多灵活性并且被很好的集成进了wxWidgets,但是它并不是实现进程间通信的唯一方法.如果你只是想进行FTP或者 HTTP的操作,你可以直接使用wxFTP或wxHTTP,它们在内部使用了wxSocket,不过这些类是不完善的,你最好还是使用CURL,它是一个通用的库,提供了使用各种Internet协议传递文件的非常直观的API,有人已经对其进行了wxWidgets封装,名字叫做wxCURL.

wxWidgets也提供了一套高级的进程间通信机制,它使用类wxServer,wxClient和wxConnection以及基于微软的DDE(动态数据交换)协议的API.实际上,在windows上,这些类是用DDE实现的,而在其它平台上,则是用socket实现的.之所以要使用这些更高层的类,是因为它比直接使用wxSocket更方便,另外一个优点是在windows平台上,使用DDE可以和别的支持DDE的程序交换数据(别的程序不必要是使用wxWidgets制作的).它的一个缺点是在别的平台上,非wxWidgets编制的程序是不能识别这种协议的,不过,如果你只需要在wxWidgets制作的程序之间交换数据的话,它还是可以满足要求的.我们将在第20章的"单个实例还是多个实例?"小节,演示一个简单的例子.

更多信息请参考wxWidgets手册中的"Interprocess Commun-ication Overview"(进程间通信概述)小节以及wxWidgets自带的samples/ipc中的例子.你也可以参考wxWidgets自带的独立帮助显示工具中的代码,它位于utils/helpview/src目录内.