注:该项目使用的 IDE 是 Visual Studio 2010,采用通讯库为 WinSock2.h,如果使用 Linux 系统进行检测则会编译失败,使用其他 IDE 有可能发生未知异常,所以我将自己电脑上运行的一部分运行状况截图。
1 服务器端与客户端的关系架构
1.1 服务端
程序的主要部分,即为项目“服务器”,采用 Windows Socket 借口,使用虚拟地址“127.0.0.1”,利用一个 while 循环来实现与多个客户端连接,每次循环连接成功后都会对当前客户端开启一个新的线程,所有客户端连接成功的 socket 都储存在全局变量 m_Server 数组里。
1.2 普通客户端
用户部分,即为项目“普通客户端”,普通客户端开启两个线程,一个用来发送订单,一个用来接受订单。用户开启客户端会有指令来操作一系列交易。客户端与服务器通过 recv 函数与 send 函数来互相发送 FIX 协议信息。
1.3 Monitor 客户端
MonitorClient 用来监测每个连接的用户进行的一系列操作。
1.4 随机客户端
RandomClient 用来模拟实际的交易所,该客户端会随机发送买卖订单给服务器。
参考文档和完整的文档和源码下载地址: