我的设计思路如下:
我希望是双向通信。
TCPServer:QTcpServer 服务端
重载服务端的incomingConnection,实现多线程
TCPThread:QThread,有一个成员:m_pTcpServerSocket;是TCPClient类型的。
以上两个类是服务端的全部。
TCPClient:QTcpSocket 客户端
里面包含了接受和发送的函数和槽。
无论服务器还是客户端是传入的数据类型是QByteArray & data
客户端:接受数据完成后,发送receiveAllData(QByteArray &) 到外部程序,让外部程序处理
发送数据完成后,发送sentAllData()到外部程序,通知外部程序把传入的数据删除掉
服务端:接受数据完成后,发送发送receiveAllData(QByteArray &)到TcpServer,再由TCPServer发送信号到外部程序,让外部程序处理(这里感觉怪怪的)
发送数据完成后,发送sendAllData()到TCPServer处理,再由TCPServer发送信号到外部程序,通知外部程序把传入的数据删除掉
PS:服务器和客户端的数据接受和发送都是由继承自QTcpSocket的TCPClient来处理
TCPThread只是重载了run函数。
======================================================================
不知道这个设计思路有没有问题,我对TCP网络通信不熟。