最简单的QT TCP服务器
Simplest QT TCP Server
从客户机接收数据需要什么?
QTcpServer Server;
if(!Server.listen("127.0.0.1", 9000)) {
return;
}
connect(Server, SIGNAL(newConnection()), this, SLOT(ReceiveData()));
到目前为止这是正确的吗?我在ReceiveData中需要什么?我真的需要另一个函数来接收数据吗?我想把它保存在QByteArray
中谢谢
由于这个问题还没有答案,这里有一个非常基本的例子。
在ReceiveData插槽中,您需要接受来自服务器的连接。
在Qt的QTcpServer这是通过调用nextPendingConnection()完成的。
所以QTcpServer的newConnection插槽将调用你的ReceiveData插槽。
在receivedata插槽中,您可以执行如下操作:
void ReceiveData()
{
QTcpSocket *socket = server->nextPendingConnection();
if (!socket)
return;
qDebug("Client connected");
socket->waitForReadyRead(5000);
QByteArray data = socket->readAll();
qDebug(data.constData());
socket->close();
}
注意:这是一个阻塞的例子,waitForReadyRead将挂起线程长达5000毫秒。
要执行非阻塞示例,需要将另一个插槽连接到新套接字的readyread信号。
你见过这个例子吗:
http://doc.qt.io/qt-5/qtnetwork-fortuneserver-server-cpp.htmlPS:是的,您至少需要一个回调函数来:
1)接收新连接
2)在连接上接收和发送数据
相关文章:
- 我可以与 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++