前段时间做过一个短信网关:
设计的思路大致如下

短信网关类设计:

一、接收,发送队列
    建立一个短信发送接收的一个临时容器,其中的利用滑动窗口控制发送的数量,使短信的发送接收都通过这个控制器发送出去,其中配合数据库维护了短信的状态,并且能够处理异常的发生。
    主要的成员函数:
 二、SM MODULE 这是一个和App通讯的模块,接收APP的下发信息,并且调用发送队列的FILL函数往队列插入信息,接收短信中心的上行消息转发给App。

三、TCPSOCKET类:
    1、TCPSOCKETBase类:建立了三个子线程,通过虚函数的方式实现后绑定,建立了一个Socket,并实现了收发。
    2、TCPSOCKET 类:
 继承自TCPSOCKETBASE类,实现了上个线程的函数,对消息进行了解封包。