VB6 Updating my customers data

Using vb6, What is the best way to update my customers data through the internet

Option 1 - Winsock
a- The server side keeps listening to one port, what if 10 request reaches the server at the same time, is it capable of dealing with them at the same time using one port?
b- Also the server will answer back sending 30MB for each of the 10 request, is it possibe to deal with them through one port together at the same time?

Is option 1 good

Option 2 - FTP
I have heared that it can be hacked easily
Is option 2 good

Option 3- Is there option 3

What do most programmers use to update their software  e.g. norton, eset nod32, ....etc?

Who is Participating?
AlexPaceConnect With a Mentor Commented:
Yes, your summary is great.  I have experience with the situation you described.  In my experience, end users tend to judge the quality of their network by the reliability of their web browser.  If their browser works and your software doesn't then they judge this to be your fault.  If their browser does not work then whatever problem your software has is the fault of their local network configuration.  I know this doesn't make sense but, in my experience, this is how end-users will judge you.

The solution is to use web technology for your own purposes.  You could do this by using winsock to send an HTTP Request to a server and then parsing the HTTP Response returned by the server.  These are just text strings and VB6 has decent built-in text processing functions as long as you remember not to concatenate long strings in a loop.

Even easier than winsock would be to use the Inet control, aka Internet Transfer control.  This control can do both the network level stuff and the HTTP header parsing stuff so you can avoid learning the finer details of a proper HTTP Request header format.

With your relatively small number of clients, the use of a web server designed to handle hundreds or thousands of concurrent connections completely eliminates your worries about scaling up.  

If you fundamentally don't care about who can access your 30mb download then you don't even need a scripting technology... just put the file on any old web server and you are done.  If you want to limit access to a small number of specific users then you could do it with a simple script.  From the client side, the Inet control could request to download the resource at this url: http://www.saljas.com/update.asp?id=xyz  Then, the logic in update.asp would evaluate the value id = xyz and decide if this request should be granted the 30mb file.  For the most simple case you could have list of all the allowed values of id built right into the script... or you could use a text file... or you could even scale up to using a database if you have a bunch of them.  Anyway, if the script logic determines that the request should be granted it sends the 30mb file... otherwise it sends a plain HTML web page that says something like, "Update unavailable, please contact saljas and pay more money!"

The great thing about this solution is that you can use a web browser to prove that it works because plugging the same url into the browser address bar will either result in a download or a web page.  So you can test the web distribution side of the system independently of your VB6 application.
I think you'll have the best luck using a web server.  The reason is that you don't want to be in the business of having to support the client networks and which firewall port is or is not open...  Most locations will have port 80 either open or set up with an invisible proxy so you'll probably have the least problems if your software pretends to be a web browser.

Also you wont have to worry so much about the scaling issue because you can be pretty sure that the web server is designed to handle more than 10 concurrent clients.

If VB6 is your best language I would consider using Microsoft IIS web server with "Classic ASP" for the server-side logic if necessary..   The Classic ASP can use VBScript so that will feel more natural to you than a .NET language like C# or VB.NET
saljasAuthor Commented:
Many thanks AlexPace,

Your answer
Winsock has more possible problems regarding the port.(eg firewal,.....)
web server has ready ability for 10 concurrent clients.

And as a result
the best choice is web server.
and for vb6 you advice IIS with Classic ASP.

I am rewriting your answer to make sure I understood correctly.  Please correct me if I misunderstand you.
saljasAuthor Commented:
One more thing,
My software is not a web based, it is a windows application.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.