Network applications - help on running files from a remote computer.

Xon

Member
Joined
Jun 3, 2010
Messages
11
Reaction score
0
I am writing a Network application, the application should be able to show a list of files on the peer's computer, and if the user wants to, he/she should be able to run this file, like you would through a normal windows shared folder. I do not want the file to be copied (especially if it's a big file), and I do not want achieve this through creating a shared folder, but other applications should still treat it as a normal file that resides on the local computer.

I currently have no idea on how to do this, and I would appreciate pointers on what would be necessary to achieve this. I hope the explanation is clear enough, thanks in advance!
 
I am writing a Network application, the application should be able to show a list of files on the peer's computer, and if the user wants to, he/she should be able to run this file, like you would through a normal windows shared folder. I do not want the file to be copied (especially if it's a big file), and I do not want achieve this through creating a shared folder, but other applications should still treat it as a normal file that resides on the local computer.

I currently have no idea on how to do this, and I would appreciate pointers on what would be necessary to achieve this. I hope the explanation is clear enough, thanks in advance!

Share the folder and then create a mapped drive...
 
Preferably I do not want to do it that way, A solution I hoped for is (if possible) something like, make a temporary file (if it can remain in memory, it will be even better) and open the application associated with the extension and feed it the temporary file's path, constantly supplying the data the application needs from the file(this would require we know which part of the file needs to be filled, it would be somewhat problematic when working with large files).

The problem is I have no idea how to go about to achieve this, and the solution i supplied if at all possible is not a preferable one. I guess the answer would lie in the way Windows did it, and trying to recreate it.

Thanks for your reply.
 
Sounds easy enough if you go Web Based with it.

ie. all files are stored on server and are only loaded or retrieved when required?
 
I do not want the file to be copied (especially if it's a big file)
Well you'll have to copy it sooner or later if you plan on using it locally.

other applications should still treat it as a normal file that resides on the local computer.
That requirement limits things pretty severely.

constantly supplying the data the application needs from the file(this would require we know which part of the file needs to be filled, it would be somewhat problematic when working with large files).
Thats a bad plan. It'll introduce hectic lag into your application even with compression and gigabit LAN. And if your app can't fill out the data fast enough then timeouts in the app using the data will be triggered. That way lies madness.

If there are going to be big files then you'll have no choice but to copy them in advance if you want it to be usable & lag free. i.e. Sync them w/ a checksum based system.

I'd scrap the entire plan and either use shared folders or install Dropbox. Dropbox has LAN sync if configured correctly but it will also uploaded to the cloud.
 
I am writing a Network application, the application should be able to show a list of files on the peer's computer, and if the user wants to, he/she should be able to run this file, like you would through a normal windows shared folder. I do not want the file to be copied (especially if it's a big file), and I do not want achieve this through creating a shared folder, but other applications should still treat it as a normal file that resides on the local computer.

I currently have no idea on how to do this, and I would appreciate pointers on what would be necessary to achieve this. I hope the explanation is clear enough, thanks in advance!

Do you want todo this on Windows, MAC or Linux? For this kind of operation you would probably need to look at doing network socket programming, which could be a "small beast to take" if you've never done it before. Use something like C++ or C# which will allow you to easily port the code to other platforms, if your users want it to work on say Mac / Linux / BSD / etc. You can use GTK+ to port the application to Linux and MAC, from a Windows side :)
 
Thanks for everyone's posts, I admire all of your'e insights.

Currently the application is being developed in Qt, future plans involve having the application operate on multiple platforms (especially Linux and Windows) although for now I do not mind if it only works on Windows.

For this kind of operation you would probably need to look at doing network socket programming

Normally I would just create a shared folder with references to the files the user wants to run, but there should be a way to "stream" the file almost like you would video or audio, for this I believe socket programming is necessary (I have previously done some socket programming for communication between applications on a network).

Please let me know if I am too vague and should describe a complete scenario.
 
Top
Sign up to the MyBroadband newsletter
X