- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写客户端-服务器应用程序,它使用 QTcpSocket 和 QTcpServer。这是断开连接的()插槽:
服务器:
void testServer::disconnected()
{
socket = qobject_cast<QTcpSocket*>(sender());
qDebug() << " - CLIENT DISCONNECTED";
socket->disconnectFromHost();
if(server->isListening())
{
server->close();
qDebug() << " - SERVER CLOSED";
}
}
客户:
void testClient::disconnected()
{
qDebug() << " - SERVER DISCONNECTED";
tcpSocket->disconnectFromHost();
}
当我尝试模拟双方连接时可能发生的崩溃时,我遇到了奇怪的行为:当我关闭服务器时,我总是可以用我的客户端重新连接到新服务器。但是如果我在连接时关闭客户端,我可以将服务器重新连接到客户端两次。再也没有了。
在第三个“建立连接-重新启动客户端-连接到服务器”例程中我总是失败。
QTcpServer::newConnection()
发出信号,但是
server->hasPendingConnections()
返回 false,所以我不能用
分配套接字socket = server->nextPendingConnection()
重新连接QTcpServer有什么问题?此外,服务器和客户端始终在常量端口上运行,例如服务器为 1234,客户端为 4321。这可能是问题所在吗?
最佳答案
server->close()
结束服务器的操作。它不会再接受任何连接,任何待处理的连接也将立即关闭。 newConnection
信号的发射与 hasPendingConnections
的使用之间存在竞争。后者提供了正确的答案 - 服务器此时已关闭。
比照文档:
void QTcpServer::close()
Closes the server. The server will no longer listen for incoming connections.
关于c++ - 重新连接 QTcpServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49569011/
我对 QTcpServer 如何在线程和阻塞方面的幕后工作感兴趣。 QTcpServer有一个 listen()立即返回的方法。如果监听成功开始,服务器将发出信号 newConnection() .我
我在 QT 框架 (c++) 中有一个软件,它可以将处理过的(本地)数据发送到其他服务器并接收在其他服务器上处理过的相同(外部)数据并进行比较。 当处理大量本地数据时会出现问题,外部数据会被缓冲并且在
当我尝试使用QTcpServer 监听任何端口,并在调试器 下运行应用程序时,我总是会收到“未知错误”。当我在没有调试器的情况下运行这个程序时——一切似乎都很好。 #include #include
我使用 QTcpServer来自带有 C++ 的 Qt 框架。 我开始了 ret = tcpServer->listen(QHostAddress::Any, 9871) 与 QHostAddress
我正在 Windows 7 上的 Qt 4.7 中开发一个 RPC 服务器。为了同时参与多个执行,每个请求都在一个单独的线程中运行(因为函数可能会阻塞)。我继承自 QTcpServer 并重新实现了
我正在编写客户端-服务器应用程序,它使用 QTcpSocket 和 QTcpServer。这是断开连接的()插槽: 服务器: void testServer::disconnected() {
我正在尝试使用 QT 在 C++ 中创建一个 TCP 服务器。我有代码,但是当我尝试使用 SocketTest 连接到服务器时,它说连接被拒绝(很可能是由于服务器未运行)。 这是在我的 tcplist
我正在为服务器编程,我为服务和管理器编程。当我使用 UI 服务器管理器停止服务器时,服务器调用一个名为“stopServer()”的函数,该函数包含以下内容: qDebug() getSocket()
我正在 Qt 中编写 TCP 服务器,它将提供大文件。应用逻辑如下: 我继承了 QTcpServer 并重新实现了 incomingConnection(int) 在 incomingConnecti
我的VS2010只能#include 但不能 #include . Qt助手建议被包含以应用 TCP 服务器,但我的 VS2010 似乎找不到此 header ,但它可以找到 这两个 header
我正在尝试一个非常非常简单的 QT 网络程序。由于某种原因,它在没有任何错误消息的情况下执行时崩溃,因为它没有按预期将任何输出打印到命令行。这是代码: qtTCPservertest.pro QT
我刚刚写了一个简单的qtcpserver,几乎就是这个例子:QT QTcpServer::incomingConnection(qintptr handle) not firing? 服务器基本上是工
我有一个这样的线程子类 class MyThread : public QThread { public: MyThread (void); ~MyThread (void);
我正在尝试使用 QTcpServer 和 Qt 5.3.1 在 Android 上启动服务器,但服务器没有启动,我得到“不支持的套接字操作”。它在 Windows 上运行良好。 代码如下: void
我正在做一个简单的服务器-客户端应用程序。但是,客户端从服务器端获得了一些未定义的行为。找回错误码后,才知道是服务器断开了连接。 这是服务端main.cpp #include #include #
我正在尝试将 char 数据从 PHP 脚本传送到 QTcpServer 并且服务器收到连接并且也可以回复,但我无法获取 php 发送的数据。 我做错了什么? PHP 脚本: #include "f
我正在制作一个简单的程序,它将“连接”到自身然后发送数据。它启动一个 QTcpServer 然后等待任何传入的连接。我有一个单独的函数,它将依次尝试在我决定的本地主机和端口上连接到该服务器。这在我在命
我只想用特定地址设置我的 QTcpServer。我已经用这段代码试过了,但它不起作用...... server.listen(QHostAddress::setAddress("127.0.0.1
我想将数据从特定位置(共享内存)传递到客户端应用程序。一个线程不断地轮询 SHM 以获取新数据,一旦它得到一些东西,它就会将它传递给客户端。 可以有多个此类客户端应用程序实例将连接到我的 (QTcpS
我用 winsock2.h 找到了这个套接字代码 http://www.tidytutorials.com/2009/12/c-winsock-example-using-client-server.
我是一名优秀的程序员,十分优秀!