从服务器向客户端发送数据
Sending data from a server to a client
我有两个项目,一个用于服务器,一个用于客户端。在客户端,当我想发送数据时,我创建了一个QTcpSocket
成员变量,然后使用write()
方法发送数据。
在服务器上,我接收到信息,但是我想将信息发送回客户端。具体来说,我试图验证一个用户,因此我将他们在客户端登录时使用的用户名和密码发送到服务器,并且我希望根据保存在服务器上的数据库检查该数据,然后将信息发送回客户端以验证信息是否正确。
我的问题是我不知道如何从服务器发送信息到客户端。在服务器上,我有两个成员变量,QTcpServer server;
和QTcpSocket* client;
。
我看过QTcpServer
的文档,据我所知,它没有等同于write()
, QTcpSocket*
是当前连接到服务器的客户端。
我正在考虑在服务器上创建一个QTcpSocket
变量,并向客户端发送信息,就像我向服务器发送信息一样,但这似乎是错误的,因为这样客户端就会表现得像服务器一样,在客户端上完成一个QTcpServer
变量。
我还能怎么做呢?
您应该使用QTcpServer
来接受传入的TCP连接。首先调用listen()
等待连接:
QTcpServer* tcpServer = new QTcpServer();
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(onNewConnection()));
if( !tcpServer->listen( QHostAddress::Any, port_no ) )
qDebug() << "Couldn't listen to port";
每次有新的连接可用时,都会发出newConnection
信号。因此,我们将信号连接到插槽,以使服务器QTcpSocket
对象与客户端通信:
void MyClass::onNewConnection()
{
serverSocket = tcpServer->nextPendingConnection();
connect(serverSocket, SIGNAL(readyRead()), this, SLOT(readSocket()));
}
您现在可以使用write
方法向客户端套接字发送数据:
serverSocket->write("Hello!");
并在新数据到达时读取数据:
void MyClass::readSocket()
{
QByteArray data = serverSocket->readAll();
...
}
相关文章:
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 将相机数据从服务器实时流式传输到客户端
- 不将数据 socket.io c++(客户端)发送到 nodejs(服务器)socket.io
- 在 1 个服务器 n 客户端套接字 C++ MFC 应用程序中更新数据的客户端
- TCP 服务器的异步读取使用 boost::asio 打印客户端套接字发送的数据
- Java 客户端C++服务器数据发送/接收问题
- 如何从客户端在 gsoap C++ 的标头中传递非 xml 数据?
- 将数据发送到多个客户端 UDP 时不支持地址族
- 在C++中创建一个简单的数据包路由器,如何跟踪"客户端"?
- 在 MySQL 中运行 HTTP 服务器以从客户端接收数据
- cpp / c ++中的grpc客户端代码,元数据x-api-key/x-goog-api-key不起作用,给了我语音A
- 使用 Broadcast 发出的从节点服务器发送的数据不能被 C++ 套接字 IO 客户端读取
- 如何使用 asio 本地数据报构建回显服务器和客户端?
- 如何使用gRPC在客户端和服务器之间双向发送和接收流元数据
- 通过TCP将数据从C++客户端发送到JSON服务器
- 如何使客户端在将数据写入 C++ 管道之前检查服务器是否完成了从管道的读取操作
- C++中从客户端到服务器的数据传输问题
- Qt TCP服务器不从客户端读取数据
- UDP 客户端(接收器)未按预期接收数据报
- 无法在java(客户端)的套接字上正确写入数据(类),也无法在c ++(服务器)上读取数据(类)