Qt4 Network, SFTP, help please!
I would like to start off by saying that this is going to be a tall order of help.
I am new to network programming in Qt and have been tasked to create something that is network based. I have a basic design layed out for this program already, so that will not be a problem.
For starter, let me explain what the program needs to do:
- It needs to pull updates from a folder on a server.
2a. It needs to look in a folder labeled for the operating system. I.e WinXP, Win7, Centos 6.3, etc. for the updates. (So check operating system the program is on and navigate from there.)
2b. It needs to check the updates for ones that it has already installed.
2c. It needs to install the new updates.
It needs to show the details of the update progress in a line edit box.
It needs to write the details in a log file as well.
It needs to schedule when to check for updates next.
Most importantly, it needs to do this over SFTP.
All i have so far is the basic New File, QT Gui, Mainwindow application.
This is currently programmed on a linux, but will mainly be employed on a windows client.
i have done this before , but with http , i will tell what i have done , maybe its helps you,
first off all you need create a Thread for your update progress such as check for update or download update files
use http download , it will easier i think ...
your program client that runs have a version number like 1.22 , your next updates is just change some files on client , you just need to write this files name and download link to a file on your update host with version number , i call this file update.ini in this example , and its what u need to do :
1.first your client will connect to host and download that update.ini
- check in that update.ini to see is there any newer version than your client current version
- if there is newer version you need to download that files and save them to a temporary folder
- after download finished you need to replace that new files with old version files , but there is a problem , u cant ! because that files is open with your current application
- run a simple program exit this program , and replace new files with old one , and run program again
your update is done now ...
it was my experience , but maybe there is better way ...
sorry for bad english
Maybe experience of other people can be helpful: