TCP/UDP Tunnel development in Qt



  • Hi,

    How can Qt be used for an encrypted tunnel development for TCP and UDP protocols? Any ideas are appreciated!

    Regards,



  • Sorry, no ideas here. You'll have elaborate in more detail what you want to do.


  • Moderators

    The idea is to do some programming. Any code is appreciated.



  • My first instinct is: no, this is too low level for Qt to be of much use. But I may be wrong, of course, since you are not so clear on what you want to do.



  • [quote author="Andre" date="1300784640"]My first instinct is: no, this is too low level for Qt to be of much use. But I may be wrong, of course, since you are not so clear on what you want to do.[/quote]

    Why would it not be possible? http://doc.qt.nokia.com/4.7/qsslsocket.html

    No need even to do anything low level, given I understood the term “tunnel” in this case correctly.



  • [quote author="Smar" date="1300792887"]
    [quote author="Andre" date="1300784640"]My first instinct is: no, this is too low level for Qt to be of much use. But I may be wrong, of course, since you are not so clear on what you want to do.[/quote]

    Why would it not be possible? http://doc.qt.nokia.com/4.7/qsslsocket.html

    No need even to do anything low level, given I understood the term “tunnel” in this case correctly. [/quote]

    Well... perhaps I understood the term differently, as for me, a tunnel would be something like a network device in the OS that other applications can use transparently to connect to services on the other end of the tunnel. I don't quite see how to build such a service using Qt. Of course you can connect to outside services and use techniques like SSL. But that in itself does not make a tunnel. But again: it depends on what farooqmian wants to achieve and how he defines a tunnel.



  • I thought tunnel in this means that you’d pipe something inside TCP or UDP over encypted connection. If you want tunnel as is real tunnel, you’d use OS functionality for it anyway.



  • Tunnel in this case means a tunnel in its core sense, i.e. tunnel client be able to send and receive data to the other end of the tunnel which would be tunnel server, which will forward the request to the actual server and get the results back, and send these to the tunnel client which will send to the calling client after decrypting.
    If it cant be done in QT, then any low level c or c++ pointer compatible with QT, can work as well. Pointers please!



  • I would just look at standard VPN solutions that already exist. They would work just fine with Qt based applications too.



  • [quote author="farooqmian" date="1301060214"]Tunnel in this case means a tunnel in its core sense, i.e. tunnel client be able to send and receive data to the other end of the tunnel which would be tunnel server, which will forward the request to the actual server and get the results back, and send these to the tunnel client which will send to the calling client after decrypting.
    If it cant be done in QT, then any low level c or c++ pointer compatible with QT, can work as well. Pointers please![/quote]

    This is the game of the native OS (maybe with the help of some specialized application if you have non-standard VPNs). You can search google for ssh tunnels or VPN solutions.

    You still did not explain why you want to program this stuff yourself. It would just be the 1000 + first half-grown tunnel solution. And from what you wrote here, your knowledge about these kind of things is - to describe it politely - rudimentary. I seriously doubt that you are able to write such a program - sorry. Please do yourself and your users a favor, and use existing solutions.



  • farooqmian as I had the same questioning and think a better answer than Volker did (whose answer I also disagreed in my thread by the way) I engage you to visit that "reference":http://vtun.sourceforge.net/tun/
    where you can choose how far you want to go : tun or tap and.

    Then use it with SSL thanks to "this blog":http://xzis.me/2010/08/basic-samples-for-ssl-communication-using-qt/
    where you'll have a concrete example.

    My understanding is that you want to learn by try process, so if this is true please let me know if you succeed or found something another tunneling solution.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.