Archived

This forum has been archived. Please start a new discussion on GitHub.

Use of low level socket library

In my C++ application, I have to provide a low level TCP server socket. This will be used for a plain text protocol, which must be provided to end user apps. I also have a need to send and receive UDP multicast messages.

There are plenty of decent socket libraries for C++ (I'm using the old Sockets++ now), but I was wondering if it is possible (or a good idea) to use the underlying low level network connection classes in ICE.

From what I can see in the source code, there are some classes in the IceInternal namespace that may be of use.

Of course, if you call something Internal, then it sounds like you don't want applications going anywhere near it, so I guess this isn't the way to go about it.

It just seems redundant for me to use a totally different low level networking library (with potentially completely different event handling mechanism), when I know Ice must be doing the same thing under the hood.

I realise the focus of Ice is the RPC side of things, so I understand if you don't want to publish the lower layers.

At this stage, I'm trying to get a sense of the scope of Ice. Do I have any options?

Thanks,
Jeff Gray

Comments

  • matthew
    matthew NL, Canada
    You are free to use whatever you like. However, I don't recommend using anything outside of the Ice public API. We don't provide support for the use of any of these APIs, and furthermore the APIs are subject to change without notice.
  • I use ACE (Adaptive Communications Environment, just Google ACE) for timing and non-Ice related sockets programming. It is platform independent and works well on Windows, Solaris, Linux, etc. It's documented fairly well (three books have been published), and best of all is free.
  • I second 'ACE'

    Jeff, I second mwilson's recommendation of ACE .. if you want a flexible, stable and supportable sockets layer, and cant derive/get what you need from ICE (no offense ICE guys), have a look at ACE.

    (Im using it as the backbone for an AS2805 related realtime message system)

    cheers, Garth (2wheelsrsd)