黑莓10插槽客户端发送数据

时间:2017-06-23 15:58:06

标签: blackberry-10 blackberry-cascades qtcpsocket

我在搜索stackoverflow和谷歌后发布了我的问题。

我正在尝试在点击"空格键"时从黑莓q10发送时间戳,以毫秒为单位发送到Java Socket服务器。黑莓Q10上的按钮。我可以连接到Java Server,并且能够在单击空格键时查看BB Q10屏幕上的文本更改(用于测试)。但我无法将数据发送到服务器。我检查服务器与另一个Java客户端应用程序客户端服务器连接工作正常如何让我的BB10应用程序成功地将数据发送到服务器。

我还想设置socket nodelay和socket keepalive设置我该怎么办呢。 的 MAIN.QML

    import bb.cascades 1.4
import HelloWorldServices 1.0
Page {
    keyListeners: [
        KeyListener {
            onKeyPressed: {
                if(event.unicode==" "){
                    label.text= hws.Nail();
                    hws.startTransfer();
                }
            }
        }
    ]
    Container {

        //Todo: fill me with QML
        Label {
            id:label
            // Localized text with the dynamic translation and locale updates support
            text: qsTr("Hello World") + Retranslate.onLocaleOrLanguageChanged
            textStyle.base: SystemDefaults.TextStyles.BigText
        }



        Button {
            id: btnGetHello
            text: "Test Hello"

            onClicked: {
                label.text= hws.getHello();
                hws.startTransfer();
            }
        }

    }

    attachedObjects: [
        HelloWorldServices {
            id: hws

        }
    ]
}

HelloWorldService.cpp

    #include "HelloWorldServices.hpp"

#include <bb/cascades/Application>
#include <bb/cascades/QmlDocument>
#include <bb/cascades/AbstractPane>
#include <bb/cascades/LocaleHandler>
#include <QTNetwork/QhostAddress>

using namespace bb::cascades;

HelloWorldServices::HelloWorldServices(QObject *parent) :
   QObject(parent)
{
    QHostAddress addr("192.168.1.104");
    client.connectToHost(addr,8080);


    startTransfer();
}

QString HelloWorldServices::getHello()
{
  return QString("Hello there!");
}

QString HelloWorldServices::Nail(){
    return this->getHello() + " NailedIt!";
}
void HelloWorldServices::startTransfer(){

  client.write("Hello"); // here timestamp in milliseconds

}

HelloWorldServices.hpp

    #ifndef HelloWorldServices_HPP_
#define HelloWorldServices_HPP_

#include <QObject>
#include <QDebug>
#include <QString>
#include <QTNetwork/QTcpSocket>
namespace bb
{
  namespace cascades
  {
    class Application;
    class LocaleHandler;
  }
}

class HelloWorldServices : public QObject
{
  Q_OBJECT
  Q_PROPERTY(QString status READ NOTIFY statusChanged)
  public:
  HelloWorldServices(QObject *parent = 0);

  virtual ~HelloWorldServices() { }

  public Q_SLOTS:
  QString getHello();
  QString Nail();
  Q_INVOKABLE void startTransfer();



  private:

     QTcpSocket client;
};

#endif /* ApplicationUI_HPP_ */

的main.cpp

   #include "HelloWorldServices.hpp"

#include <bb/cascades/Application>
#include <bb/cascades/QmlDocument>
#include <bb/cascades/AbstractPane>
#include <QLocale>
#include <QTranslator>

#include <Qt/qdeclarativedebug.h>

using namespace bb::cascades;

Q_DECL_EXPORT int main(int argc, char **argv)
{
    Application app(argc, argv);
    qmlRegisterType<HelloWorldServices>("HelloWorldServices",1,0,"HelloWorldServices");

    QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(&app);
    AbstractPane *root = qml->createRootObject<AbstractPane>();
    app.setScene(root);

    // Enter the application main event loop.
    return Application::exec();
}

0 个答案:

没有答案