Re: Which API should I use for sockets
Re: Which API should I use for sockets
- Subject: Re: Which API should I use for sockets
- From: Scott Thompson <email@hidden>
- Date: Fri, 13 Jun 2003 13:07:08 -0500
I am beginning a new project that will use TCP sockets. I am new to
OS X
development and would like some opinions on which API we should use.
(CFSockets, NSSockets, or BSD Sockets) If there is any documentation
on
Apple's Site that answers this question please direct me there.
Well... it depends...
BSD Sockets would be the "raw API". It would be most appropriate if
you needed absolute and exacting control over the socket behavior and
life cycle. Correspondingly it would be the lowest overhead in terms
of execution, but probably the highest overhead in terms of learning
(if you don't already know how Sockets work).
Both CFSocket and NSSocketPort are built on top of the "raw" BSD
sockets. As such, you will have to know a bit about the BSD sockets to
use them, but not as much as if you were coding to the BSD layer
directly. Both of these provide a level of insulation from you as the
engineer in terms of making it easy to set up and deal with a socket.
However, both provide a bit of overhead for their own internal stuff so
they probably would not be as high-performance as coding to the BSD
layer. Having said that, I have found for my work that CFSocket (in
particular) is plenty fast enough... but depending on what you're
trying to do you may find otherwise.
In selecting between CFSocket and NSSocketPort... it would depend
largely on which API your more comfortable with and what API is used
throughout the rest of your application. If you are writing an
application to the Carbon API set then CFSocket is going to fit into
your code more naturally. If, in contrast, you are using Cocoa,
NSSocketPort will probably not be out-of-place.
The other option would be if you are writing a Java application. In
that case, of course, you might consider using the Java native library
support for sockets.
It's a difficult question to answer more fully without some idea of
what your application wants to do with Sockets, and how the application
itself is to be written.
Scott
_______________________________________________
macnetworkprog mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/macnetworkprog
Do not post admin requests to the list. They will be ignored.