18.1 Socket类和功能概览
socket操作的核心类是wxSocketBase,它提供了类似发送和接收数据,关闭连接,错误报告等这样的功能.创建一个监听socket或者连接到一个socket服务器,你需要分别使用wxSocketServer和wxSocketClient.wxSocketEvent用来通知应用程序 socket上有事件发生.虚类wxSocketBase和它的一些子类比如wxIPV4address让你可以指定特定的远端地址和端口.最后, wxSocketInputStream和wxSocketOutputStream等这些流对象让你以流的方式处理socket上的数据移动和传输.关于流操作的更多内容参见第14章,"文件和流操作"
正如我们在稍后的"Socket标记"小节中即将讨论的那样,socket可以以不同的方式使用.传统的使用线程的操作方式将禁止 socket事件的产生和发送,而在线程中以阻塞的方式进行socket的操作.而另一方面,你也可能使用基于事件的方式以便逃避使用线程的复杂性. wxWdigets将在需要的时候通过事件通知你需要对某个socket进行操作了.通过这种方式,数据的接收是放在后台的,你仅需要在有数据到来的时候处理它,它将不会阻塞你的GUI界面,也没有基于每个线程一个socket的实现的那种复杂性.
本章我们通过一个完整的例子来介绍wxSocket的这两种使用方法以及使用到的那些wxSocket类的API.虽然仅仅是一个例子,但是例子中的代码都可以作为正式的代码来使用.