QT中如何在一个工程内,创建多个TCP服务?

我现在需要做一款同时具有modbustcp的server和client能力的软件,我依据example中的modbus Demo,写了两个子类
Server和Client,然后我想在主类MainWindow中进行调用这两个子类。

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = Q_NULLPTR);
    ~MainWindow();

private Q_SLOTS:
    ……
private:
    Ui::MainWindowClass* ui;
    Server* server1;
    Client* client1;
};

然而,现在我只要同时保留Server* server1;
Client* client1;程序运行就会在setupUi的centralWidget = new QWidget(MainWindowClass);语句也就是
创建界面的时候,报出异常:0xC0000005: 写入位置 0x000000000000006C 时发生访问冲突。

单独注释掉某一个,另外一个是可以正常运行的。

请问我这个问题应该怎么解决呢?现在还没有到具体的运行阶段,不知道该怎么样通过多进程的方法将类中的两个成员隔离开。

2019年7月26日15:52:33更新
我尝试了创建了一个ServerThread然后在线程中创建server,还是报错

main.cpp 中
pid_t pid = ::fork();
if( pid == -1)
return -1;
if(pid==0){
Server *server =new Server();
server->show();
}
else{
Client * clinet= new Client();
client->show();
}