I need to learn event-driven programming. I have the basics from University, but it was all GUI-events in Java.
I need to write a console-based application which will be able to respond to events from several hosts on a network and control some hardware accordingly. Event-driven seems to be the way to go, since each host can generate requests for service from the hardware at pseudorandom intervals, and I don't want to keep the hosts tied up waiting for the hardware to service them in a sequential order. Speed isn't an issue — we are talking about software which will manipulate physical objects, placing them in a position the individual hosts may analyze them (a potentially lengthy task).
At the moment, I'm toying with the idea of the hosts sending e-mails to the machine controlling the hardware, but there has to be a more elegant solution. I'm not much of a programmer (I'm good at hardware for real world data acquisition and control), but I'm determined enough to do it once I get a handle on the basics of the architecture I wish to implement.
I'm hoping someone out there can suggest a few online tutorials and maybe a development environment with templates for what I need to do, and give this "brute force and ignorance" programmer a few tips to make life easier.
The environment has to be Linux. I need the stability, security, and device drivers for my USB interface boards. I haven't decided on the language for the event loop — I'm thinking C++ or Perl, depending on the abstraction I think I need based on your suggestions — with event handlers being written in everything from Shell to Assembly depending on which event they're handling.