Thanks for the ideas guys, I checked QTcpSocket, but this opens the connections window (as I suppose it should really). krk969; rather than make a connection, what I want to achieve is to check whether there currently is a connection. Initially, I can just fire off a QNetworkRequest; if there is a connection, I'll get some data, if not, I can find out through the appropriate error. If there is no such connection, what I want to do is to silently poll to wait for a connection. After some digging, what I've found is, until bearer management is implemented for Maemo/MeeGo, QNetworkInterface can be used. The N900 can be connected by either gprs or wlan. So what I do: Code: void retry() { QNetworkInterface wlan = QNetworkInterface::interfaceFromName("wlan0"); QNetworkInterface gprs = QNetworkInterface::interfaceFromName("gprs0"); if( (wlan.isValid() && wlan.flags().testFlag(QNetworkInterface::IsUp)) || (gprs.isValid() && gprs.flags().testFlag(QNetworkInterface::IsUp)) ) { qDebug() << "Connection found."; } else { qDebug() << "No connection found on retry, retrying again"; QTimer::singleShot(500, this, SLOT(retry())); } } This works well; the only issue it does suffer from is that if the N900 is connected via usb in PC suite mode, wlan0 reports that it is connected even if not connected to a wifi network (I guess this is because I'm using mad developer tools with USB mode g_ether). In such a state, it's therefore not possible to really detect whether the wifi is really connected, but this can be handled by the error messages given by QNetworkReply.
void retry() { QNetworkInterface wlan = QNetworkInterface::interfaceFromName("wlan0"); QNetworkInterface gprs = QNetworkInterface::interfaceFromName("gprs0"); if( (wlan.isValid() && wlan.flags().testFlag(QNetworkInterface::IsUp)) || (gprs.isValid() && gprs.flags().testFlag(QNetworkInterface::IsUp)) ) { qDebug() << "Connection found."; } else { qDebug() << "No connection found on retry, retrying again"; QTimer::singleShot(500, this, SLOT(retry())); } }