SCTP for Java

Florian Weimer fw at deneb.enyo.de
Wed Aug 27 13:00:22 PDT 2008


* David M. Lloyd:

> Doing this: UnixSocketChannel.open(String) or similar seems more
> correct to me.

You need to do this twice, for SOCK_STREAM and SOCK_DGRAM.

> If you go the route of using SocketChannel.open(SocketAddress), for
> example, now you've got instanceof checks for each socket type.  Does
> this not seem like a so-called "code smell" to you?

I've written an OO-ish socket abstraction, and I used struct
sockaddr_storage as the glue between socket addresses and sockets
(technically, I didn't even have to make the socket address class
abstract, but I think I still did).  There are some safety issues with
this approach, though, and maybe OpenJDK needs to support systems
without struct sockaddr_storage.

Doing away wit socket addresses certainly has some charm, but you really
need them for server sockets, for connectionless sockets, and for
logging purposes.



More information about the net-dev mailing list