Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt WebKit
  4. Can Qt WebKit detect specific network card
QtWS25 Last Chance

Can Qt WebKit detect specific network card

Scheduled Pinned Locked Moved Qt WebKit
10 Posts 3 Posters 4.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    narutomirea
    wrote on last edited by
    #1

    i have a specific network USB card (like USB 3G), but PC realize it like USB device. I want to send request to that device (then that device will send request to server itself). Say simply, i dont want request through network card, i'll catch request and send it to my device. How can i do? Sorrry if my question is confusing cuz my english is bad :(

    1 Reply Last reply
    0
    • N Offline
      N Offline
      narutomirea
      wrote on last edited by
      #2

      anyone help me plz

      1 Reply Last reply
      0
      • T Offline
        T Offline
        tobias.hunger
        wrote on last edited by
        #3

        Your OS needs to figure out the networking... Qt will just use what is configured there. My guess is that you will need to install some drivers for this to work.

        1 Reply Last reply
        0
        • N Offline
          N Offline
          narutomirea
          wrote on last edited by
          #4

          Thanks Tobias for answer!
          My device can transfer data (file, signal) go out to network well, but OS just realize it is a USB device, i want to use webbrowser with it, i think my work is just send request to it instead of ethernet card. I researched Qtwebkit, Qnetwork (Qnetworkaccsessmanager, Qnetworkrequest . ..) but haven't found the code that written for detecting network card. My idea is replacing networkcard by my device. Can i do?

          1 Reply Last reply
          0
          • JKSHJ Offline
            JKSHJ Offline
            JKSH
            Moderators
            wrote on last edited by
            #5

            WebKit is only for rendering websites; it does not understand network cards (which are also called Network Interface Controllers -- NICs)

            You can query information about your computer's NICs using QNetworkInterface:
            @
            QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();
            for (int i = 0; i < interfaces.size(); ++i)
            {
            qDebug()
            << interfaces[i].hardwareAddress()
            << interfaces[i].humanReadableName();
            }
            @

            To use a non-default NIC, you need to find the QNetworkConfiguration associated with your NIC. You can list all your computer's configurations like this:
            @
            QNetworkConfigurationManager configManager;
            QList<QNetworkConfiguration> configs = configManager.allConfigurations();
            for (int i = 0; i < configs.size(); ++i)
            {
            qDebug()
            << configs[i].bearerTypeName()
            << configs[i].name();
            }
            @

            When you have found the configuration you want, make a QNetworkAccessManager use that configuration. Then, you can sent HTTP get/post requests through that NIC:
            @
            QNetworkAccessManager manager;
            manager.setConfiguration(config);

            QNetworkRequest request(...);
            QNetworkReply *reply = manager.get(request);
            @

            Read these for info on how to create a request and handle the reply:
            http://qt-project.org/doc/qt-5.0/qtnetwork/qnetworkrequest.html
            http://qt-project.org/doc/qt-5.0/qtnetwork/qnetworkreply.html
            http://qt-project.org/doc/qt-5.0/qtnetwork/qnetworkaccessmanager.html

            Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

            1 Reply Last reply
            0
            • T Offline
              T Offline
              tobias.hunger
              wrote on last edited by
              #6

              You will need to install (or write) a driver which will tell your OS "hey, look here, this is a network card" and then all applications will be able to use it as such. This of course includes all Qt apps.

              1 Reply Last reply
              0
              • N Offline
                N Offline
                narutomirea
                wrote on last edited by
                #7

                @JKSH, Tobias: thank you so much!!! Your methods are "my device is understood be a network card"
                But such as i asked, i want my device to tell "hey, im not network card, but i can transfer request go to internet, transfer request to me, then don't care me, myself i'll encrypt it, then send it, return reply to u after receiving and decrypt reply, c'mon baby!". Is there any way to do that?

                1 Reply Last reply
                0
                • JKSHJ Offline
                  JKSHJ Offline
                  JKSH
                  Moderators
                  wrote on last edited by
                  #8

                  Ah, I think understand your issue now.

                  Qt depends on the Operating System (OS) to tell it which network cards are available. If the OS doesn't recognize a device as a network card, Qt won't try to treat it as a network card.

                  If you want Qt to use your device as a network card, you must make your Operating System think that it's a network card. So, like Tobias said, you to get (or write) a driver for it. After that, Qt can use it to do networking stuff.

                  Maybe the manufacturer already has a driver for it. What is the brand + model number of your device? Also, what is your operating system?

                  Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                  1 Reply Last reply
                  0
                  • N Offline
                    N Offline
                    narutomirea
                    wrote on last edited by
                    #9

                    My device is made by myself and maybe call it be a mini PC, it has 1 port ethernet, 1 port USB. Thats why i dont want it to be a network card. My browser on PC will transfer/receive request/reply through my device by the way: open /dev/ttyUSB0 and read/write data from it

                    1 Reply Last reply
                    0
                    • T Offline
                      T Offline
                      tobias.hunger
                      wrote on last edited by
                      #10

                      You are aware that there is network support available for USB? Just make your device announce that it supports that (if it is linux-based, then its setup is about as hard as using serial-over-USB) and your clients should set up a network interface as soon as it connects, pretty much like they are creating the serial port now.

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved