GSt*_*Sta 1 c++ qt tcp client-server
我正在研究一个需要在"主"应用程序和许多"服务员"之间进行tcp通信的项目.(该项目采用c ++,我也使用qt)
"仆人"将进行一些处理并将结果发送给"主人".到目前为止,它是一个简单的多客户端 - 服务器应用程序.
事情是,在随机时间,主人会从仆人那里请求一些额外的信息,甚至发送信息来改变他们处理的方式.
如果我将我的项目建立在财富客户/服务器示例上,我是否可以从主人那里向仆人发送消息?(有关如何的任何想法?)
或者我是否需要将我的工作建立在其他方面(比如聊天客户端?)?
关于tcp客户端/服务器通信的任何其他建议是受欢迎的,但由于我已经使用qt,我宁愿不添加其他库....
先感谢您!
在Qt中构建服务器非常简单.你必须派生QTcpServer并实现一些方法或插槽.这对客户也有效.导出QTcpSocket,您将拥有您的客户.
例如,要检测传入的客户端实现虚拟void incomingConnection(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();
}
}
Run Code Online (Sandbox Code Playgroud)
这是如何发送消息:
void Client::sendMessage(const QString& message) {
this->write(message.toUtf8());
this->write("\n");
}
Run Code Online (Sandbox Code Playgroud)
就这样!
归档时间: |
|
查看次数: |
2600 次 |
最近记录: |