🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.nativeapi
Article #7511

Client Server questions

#7511
From: Bob Gonder
Date: Wed, 26 Jan 2005 22:30
60 lines
3398 bytes
Third try to get it out of an old thread...

Hmm..5 days, no word. I'll try with a new subject (year-old thread)
Not really looking for a long discusion, just advisability of this
approach.

>Remy Lebeau (TeamB) wrote:
>>That is best accomplished using a centralized server that all instances are
>>connected to.  Issue the command to the server, and let it re-issue the
>>command to all connected clients.  Also possibly wait for a response to know
>>that all instances acknowledged the command.

The original issue was resolved with UDP, but a new issue has arrived.

>I will however, keep your recommend in mind should I change my mind...

Well, I guess I'm changing my mind....
A customer wants to run my app over a VPN, but sucking files through
that staw is too slow.

Considering a 3-part approach.

a) Simple Server Applet that sits and listens for UDP connect request
from client. When request comes in, CreateProcess on second part
(application) passing client IP.

b) Application that relies on Client for screen and keyboard io (TCP
xfer both ways.)

c) Client Keyboard/Video/Mouse functions TCPd to application running
on server. Barely more than a dumb terminal. (Though any GUI screens
would need to implement on Client, but only a very few of those
exist.)

Advantage:
	Application is already modular in KVM functions, so wrapping
them in TCP should be painless. And application would run as it does
today.

Disadvantage:
	Many copies of the application loaded into the server. Since
all calculations would be on the server instead of the user, it's
gotta slog the server.

Is that a generally acceptable method?

I figure you are going to tell me to combine a and b.
That would be fine if I knew how......
Without rewritting the whole thing, I'd need a seperate copy of most
of memory for each user/instance. I guess that would still be
CreateProcess() then.

If it was a service, would I then need to use CreateProcessAsUser() ?

Can I just take a console application, put it in the startup folder,
and call it a service, or are there special considerations?

Since all instances would now be running on a single machine, would
MapViewOfFile() reduce some of the memory/processing overhead?
(Instance 1 reads/maps file A, then instance 2 would get it for free?)
Technical Details
Message-ID: <9b6gv0dt96cjutv8jpicfiauvlbvrtfl7s@4ax.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!news.zanker.org!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!216.196.110.149.MISMATCH!border2.nntp.ams.giganews.com!nntp.giganews.com!pe2.news.blueyonder.co.uk!blueyonder!news-peer-test!btnet!newsfeed.bt.es!caladan.landsraad.net!newsgroups.borland.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 10cc67,31d29f7d88869297,start
X-Google-Attributes: gid10cc67,public
X-Google-Language: ENGLISH,ASCII-7-bit
From: Bob Gonder <notbg@notmindspring.invalid>
Newsgroups: borland.public.cppbuilder.nativeapi
Subject: Client Server questions
Date: Wed, 26 Jan 2005 14:30:29 -0800
Organization: MindSpring Enterprises, Inc.
Reply-To: notbg@notmindspring.invalid
Message-ID: <9b6gv0dt96cjutv8jpicfiauvlbvrtfl7s@4ax.com>
X-Newsreader: Forte Agent 1.93/32.576 English (American)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: 69.69.90.46
X-Trace: newsgroups.borland.com 1106778626 69.69.90.46 (26 Jan 2005 14:30:26 -0800)
Lines: 62
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!news.zanker.org!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!216.196.110.149.MISMATCH!border2.nntp.ams.giganews.com!nntp.giganews.com!pe2.news.blueyonder.co.uk!blueyonder!news-peer-test!btnet!newsfeed.bt.es!caladan.landsraad.net!newsgroups.borland.com!not-for-mail