使用qt的多客户端/服务器TCP应用程序
Multi-client / server tcp application using qt
我正在做一个项目,该项目需要"主"应用程序和许多"仆人"之间的TCP通信。(该项目是用C ++的,我也在使用Qt)
"仆人"将进行一些处理并将结果发送给"主人"。到目前为止,它是一个简单的多客户端 - 服务器应用程序。
问题是,在随机时间,主人会向仆人请求一些额外的信息,甚至向他们发送信息以改变他们的处理方式。
如果我的项目基于财富客户端/服务器示例,我是否能够从主服务器向仆人发送消息?(关于如何做的任何想法?
还是我需要将我的工作基于其他东西(比如聊天客户端?
欢迎对TCP客户端/服务器通信提出任何其他建议,但由于我已经使用Qt,我宁愿不添加其他库。
提前谢谢你!
在Qt中构建服务器非常简单。你必须派生QTcpServer并实现一些方法或插槽。这对客户也有效。派生QTcpSocket,你将拥有你的客户端。
例如,要检测客户端传入,您实现虚拟无效传入连接(int socketDescriptor)。因此,在您的情况下,您可以将传入的客户端保存在映射中(映射,因为每个客户端都有自己的 ID)。
在服务器和客户端中,您可能都希望实现readyRead()插槽。这个插槽做你想要的通信事情。实际上,在此插槽中,服务器可以接收和发送到客户端消息,反之亦然。
这是一个典型的现成:
void Client::readyRead() {
while (this->canReadLine()) {
// here you get the message from the server
const QString& line = QString::fromUtf8(this->readLine()).trimmed();
}
}
以下是发送消息的方法:
void Client::sendMessage(const QString& message) {
this->write(message.toUtf8());
this->write("n");
}
就这样!
相关文章:
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 提升 Asio TCP 服务器 处理多个客户端
- 计算出有多少客户端可以连接到我正在使用的一些tcp服务器代码
- TCP 服务器的异步读取使用 boost::asio 打印客户端套接字发送的数据
- 如何将 c++ 中的客户端 TCP 的替身列表发送到 Matlab 中的 TCP 服务器?
- 从 tcp 服务器打开 8MP H264 流时出现问题
- TCP C++客户端从C#服务器接收字节数组
- TCP套接字(客户端-服务器)recv()返回-1值
- 通过TCP将数据从C++客户端发送到JSON服务器
- 仅通过建立一次TCP连接将Recv从客户端发送到服务器套接字
- Qt TCP服务器不从客户端读取数据
- C++ TCP 服务器比较字符串失败
- 提升 ASIO TCP 服务器架构
- 如何让客户端通过modbus-tcp协议与多个服务器通信?
- C# 客户端到C++服务器 Tcp 套接字连接错误
- 连接后连接丢失 ->服务器 TCP 提升。亚西奥
- 使用qt的多客户端/服务器TCP应用程序
- C++客户端到Java服务器(TCP/IP)
- 简单的客户机/服务器TCP c++
- 多客户端一服务器TCP c++