gpt4 book ai didi

c++ - 使用 qt 的多客户端/服务器 tcp 应用程序

转载 作者:可可西里 更新时间:2023-11-01 02:44:58 24 4
gpt4 key购买 nike

我正在从事一个项目,该项目需要在“主”应用程序和多个“仆人”之间进行 tcp 通信。(项目是c++,我也在用qt)

“仆人”会做一些处理并将他们的结果发送给“主人”。到目前为止,它是一个简单的多客户端-服务器应用程序。

问题是,在随机的时间,主人会要求仆人提供一些额外的信息,甚至向他们发送信息以改变他们处理的方式。

如果我的项目基于 fortune 客户端/服务器示例,我能否从主人向仆人发送消息? (有什么想法吗?)

或者我的工作是否需要基于其他东西(比如聊天客户端?)?

关于 tcp 客户端/服务器通信的任何其他建议都是受欢迎的,但由于我已经使用 qt,我不想添加其他库....

提前致谢!

最佳答案

用Qt搭建服务器非常简单。您必须派生 QTcpServer 并实现一些方法或插槽。这对客户也有效。派生 QTcpSocket,您将拥有您的客户端。

例如,要检测传入的客户端,您可以实现 virtual void incomingConnection ( int socketDescriptor ) 。因此在您的情况下,您可以将传入的客户端保存在一个映射中(一个映射,因为每个客户端都有自己的编号)。

在服务器和客户端中,您可能希望实现 readyRead() 插槽。这个插槽做你想要的通信事情。事实上,在这个插槽内,服务器可以接收和发送给客户端消息,反之亦然。

这是一个典型的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");
}

就是这样!

关于c++ - 使用 qt 的多客户端/服务器 tcp 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13762222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com