Click here to Skip to main content
15,887,027 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello Everyone,

I am wondering if the solution I am currently using for a project is the best approach.

Here is a short description of the project:

Two applications (C#) one is a server and the second a client will send and receive a queue of float array data. This data will be in real time drawn on a chart on the client side.

I am currently using message queue but I wonder if I will not be obliged to cut the message in peaces if the float array is exceeded the message limit.

What is you view on that ?

What would be your best candidate between:

• Message Queue
• Named Pipes (directly)
• Memory mapped files
• WCF on Named Pipes or MSMQ

Thank you in advance.
Best regards.
MiQi.
Posted
Comments
dan!sh 5-Mar-14 9:09am    
Both server and client applications run on same computer?
SuperMiQi 5-Mar-14 9:11am    
yes on the same computer

Since you are doing real time like processes, make use of pipes. This[^] MSDN page provides decent information to start off.
 
Share this answer
 
v2
Comments
Sergey Alexandrovich Kryukov 5-Mar-14 12:36pm    
I voted 4. This is possible, but using named pipes directly would break platform compatibility of the product. It's better to use pipes as IPC channel with remoting or WCF. Please see my answer.
—SA
No need to use named pipes directly if all partners are working on the CLR platform. There are channels called "IPC" in both "classical" remoting and WCF (which can be self-hosted, in a simple case). These channels are actually based on named pipes. However, there is nothing wrong with using TCP, even on the same computer. Note that originally sockets were created not as a network tool, but just for IPC in the same machine.

—SA
 
Share this answer
 
v2
Comments
dan!sh 5-Mar-14 13:04pm    
This guy want real time solution for his problem. Under no circumstances anyone would say use WCF if he understand how much reflection goes under the hood with it. It is over designed. Not suitable here.
Sergey Alexandrovich Kryukov 5-Mar-14 13:24pm    
There is no such thing as "realtime" with Windows and nearly all other platforms where CLR is supported.
At to your "unsuitable", it's just wrong. Do you think lower level of OS pipe API will give you more performance? Think again.
—SA
dan!sh 5-Mar-14 13:32pm    
Read my reply. I said real time like. Hell, if you really want to get into real time argument, I would say scrap whatever you have and use C. Even better, assembly language.

Yes. It will be far better than WCF.
Sergey Alexandrovich Kryukov 5-Mar-14 13:59pm    
Not convincing. And the question is about .NET.
—SA
dan!sh 5-Mar-14 13:10pm    
And as far as sockets go, anonymous pipes would beat them when it comes to speed.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900