PDA

View Full Version : Data communication between multiple computers



AlbertGoodwill
6th October 2007, 12:48
Hello Everybody,

I want to ask expert advice on Qt and communication issue;

Assume that we have 4 computers; A, B, C, and D.
- Computers A and B are running Windows XP and thet are connected to the same wireless LAN router which also provide internet access to these computers.
- Computer C is on the other site of the city and can access to internet and it is running Mac OS.
- Computer D is running Linux and it is connected to computer A via RS232 serial port.

What I want to do is to have bidirectional (simultaneously send and receive) continuous data streams (variable data rate, around 80 K bytes/sec) between all these computers. That is all computers should be able to send and receive data from each other.

The application program which handles the communication should be independent of the actual physical layer (ethernet, or RS232) i.e. for the simplicity, the same send and receive functions prototype should be used.

Can some one advise me how to realize this in Qt?

Thx

Albert Goodwill

marcel
6th October 2007, 16:56
Ok, so you want someone to design your application... That's not cool, although I think someone will answer this post eventually. Also, I know who will do that :).

jacek
8th October 2007, 13:44
You will need some routing mechanism and an addressing scheme that will incorporate both networked and serial nodes. One class should be responsible for determining the next-hop node and outbound interface for given address. Another one should act like a server and listen for incoming messages and either forward them to another node, or emit a signal to deliver it to the local application. Third class should inherit QIODevice and represent a connection, so that you can easily send data from the application (you will need several subclasses --- one for each medium, and some kind of factory).

It's a lot of work, so check out ACE (http://www.cs.wustl.edu/~schmidt/ACE.html) first, maybe it will help you a bit.