- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 QTcpServer 和 Qt 5.3.1 在 Android 上启动服务器,但服务器没有启动,我得到“不支持的套接字操作”。它在 Windows 上运行良好。
代码如下:
void StartListening()
{
QHostAddress hostAddress;
hostAddress.setAddress(QString("localhost"));
hostAddress.toIPv4Address();
quint16 portNumber = 9878;
server->setMaxPendingConnections(1);
server->setProxy(QNetworkProxy::NoProxy);
if (server->listen(hostAddress, portNumber))
{
// Ok
}
else
{
Debug("Server did not start. " + server->errorString());
}
}
server->errorString() 返回“Unsupported Socket Operation when it runs on Android
这不是 Qt Android 支持的还是我做错了什么?
谢谢
最佳答案
好的!我解决了。
问题出在这一行:
hostAddress.setAddress(QString("localhost"));
如果我将“localhost”替换为“127.0.0.1”,服务器可以正常启动,但“运行服务器的设备”之外的任何人都无法连接它。这意味着,假设您的网络正在使用 192.168.1.xx 并且您的 Android 设备具有以下 IP 地址:192.168.1.2。如果您在具有 IP 地址“192.168.1.2”的 Android 设备上使用“127.0.0.1”启动服务器,然后使用具有 IP 地址的 PC < strong>192.168.1.3你telnet 192.168.1.2 9878会连接不上!
于是我决定通过指定Android设备的IP地址来启动服务器:192.168.1.2
hostAddress.setAddress(QString("192.168.1.2"));
瞧!这也行!服务器启动,我可以从设备外部连接!例如,当服务器在 Android 上启动时,如果我从我的 PC 执行 telnet 192.168.1.2 9878,它会连接!所以我现在需要做的就是用设备的实际 IP 地址替换硬编码的 IP 地址!我认为 QNetworkInterface::allInterfaces() 或类似的东西可以让我获得默认 IP 地址。
所以只需使用网卡的实际 IP 地址而不是 localhost 或 127.0.0.1 就可以了。现在一切正常。
关于android - QTcpServer - Android 上不支持的套接字操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486235/
我对 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.
我是一名优秀的程序员,十分优秀!