Bidirectional communication using C # TCP channels

Is there a native way to implement the functionality provided by Genuine Channels ( http://www.genuinechannels.com ) components ? Essentially, it provides the same functionality as the .net remote access component, with the only difference that .net remote access is unidirectional. I'm looking for something where, as a client, I could connect to the server and then send messages to the server, and then the server can send messages to the client (whenever a server is needed, without calling the client function).

Thanks for the help!

+1


a source to share


2 answers


As a standard, WCF has directional control over TCP.

(When WCF runs redirected pipes over TCP, a message from one end can block a message from the other end. This is because WCF simply allows both ends to send messages over direct pipes; it does not create two independent pipes over a single TCP socket.)



However, WCF has no overhead compared to a single HTTP connection, and WCF does not handle firewalls compared to the HTTP confor .

+3


a source


You will either have to switch the client and server roles (i.e. who is listening and who is writing), or you can open a second socket on the same port to provide your client server. Your client server is what will listen for messages from what you call the server and then [raise events | queue] to process the messages it receives.



+1


a source







All Articles