• Welcome to Valhalla Legends Archive.
 

[C++] Service communication with 3rd party GUI

Started by warz, July 09, 2006, 02:44 PM

Previous topic - Next topic

warz

Well, I'm at it again, starting yet another version of soup bot. My intention is simple - to create a service that specifically connects to battlenet and relays any incomming events to to a specified port on the local machine. The third party gui will simply wait for data to arrive on that port, and handle it appropriately. Essentially, the service will be the client and handle all the core battlenet processing. The gui will be an optional, at times, means of communicating with the running service.

Right now, I'm brainstorming, and was thinking about making the service 'blast' out udp data to a certain port on the local host so that there is no connecting involved and so that the data is always being constantly 'blasted'. This way, with or without a running 3rd party gui, all the data will be relayed and available for handling by any 3rd party gui. The only problem with this is that I will not be able to make use of this service from a different machine. I'm not sure if this is a bad thing, or a good thing, but for the sake of asking - would it be better to make communication between these two interfaces use  TCP, and require an active connection? Does UDP sound like it'd be a quality method? What does Skywing's BinaryChat use? (I think BinaryChat does something similar to this.)

Are there possibly any other crazy ways that I don't even know of? I mean, could my ideas be the granny panties way, and there exists some lace-thong way to do this? I dunno, this is why I'm asking.

rabbit

I have no clue how JavaOp (the first one) does it, but it has a remote interface.  I suggest you take a look at that.
Grif: Yeah, and the people in the red states are mad because the people in the blue states are mean to them and want them to pay money for roads and schools instead of cool things like NASCAR and shotguns.  Also, there's something about ketchup in there.

MyndFyre

Quote from: rabbit on July 09, 2006, 07:12 PM
I have no clue how JavaOp (the first one) does it, but it has a remote interface.  I suggest you take a look at that.
I believe JavaOp 1 uses RMI (Java's Remote Method Invocation) which essentially creates a transparent proxy between the server and client.  .NET has something similar in Remoting.

It's kind of cool, but I've found that, in order to make those protocols as generalizable as they need to be for those kinds of scenarios, they get to be too bulky.
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.