Java SCTP Library

SCTP socket interface for Java (using JNI)


This page describes a Java SCTP API that I made.

Background

I needed SCTP support in Java for another of my projects (Java Diameter stack), but Java does not have any native interface to it, nor does it seem that Sun is going to implement it soon (Sun bug 4927640) - probably because SCTP is not available on all platforms.

This implementation creates an interface to the SCTP stack in the OS by using JNI (sorry, that is the only way to do it). It is written in Java 5.0 and C++, and has been tested on Linux 2.6.16 (more details at the bottom).

Documentation

You can browse the complete documentation for the Java SCTP API.

Download

You can get the .jar-file, the documentation (same as above, but for offline purposes), examples and tools by going here.

Note: The JNI part is not downloadable in binary form. You have to compile it yourself.

Design

Originally I envisioned the SCTP socket nicely integrated into the exisiting networking framework in Java. Unfortunately, it is not possible and does not make sense:

Furthermore, I have not implemented all functionality that the SCTP socket draft specifies.

Detailed requirements

This is the environment the implementation has been tested it with:

But I am currently developing using:

It has also (very) experimental support for Solaris on x86:

I am semi-active in the kernel development (SCTP only), and I think that it should work fine with all kernels after than 2005-10-10.

My Solaris GCC installation is currently broken, but I did manage to make a few compilations. I think it works there too.

The implementation does not work on Windows. There are no SCTP stacks for Windows (that I am aware of)

You may be able to adapt the implementation to using a non-kernel SCTP stack on other platforms, but you will have to implement JNI part from scratch (maybe).

Comments, bug reports, contact

You can contact me at obfuscated email address.