android中的SCTP协议支持

时间:2013-04-17 23:28:52

标签: android network-programming linux-kernel network-protocols sctp

如何在Android中使用SCTP协议?

我已经知道Android系统默认不支持SCTP,但是可以通过插入SCTP内核模块来启用它,或者在模块配置中启用SCTP重建内核。

我需要对这个问题有所了解。可能吗?如何让android支持协议?如何构建内核模块并正确插入?如果我们能够成功地使系统支持它,我们如何使用该协议? android上的Java API是否支持SCTP?

1 个答案:

答案 0 :(得分:8)

使用模块进行操作是正确的方法。回答你的问题:

  • SCTP已作为Linux源代码树中的内核模块提供 - “CONFIG_IP_SCTP = m”将启用该模块。你可以将它改为“y”到硬链接,虽然这可能是不可行的,因为你必须为此重建整个内核。

  • 必须仍然按照内核版本构建模块。因此,基本上每个供应商,您需要获取他们的内核源代码(可行),然后针对它编译您的模块。

使用:在用户模式下 - 通过调用s = socket(AF_INET [6],SOCK_STREAM,IPPROTO_SCTP)来创建套接字;从那时起,套接字API的工作方式完全相同,只有少数例外(即setsockopt,这是协议类型特有的)。

从Java - 事实上确实支持最新版本的协议(JDK7,作为里程碑3),但Java支持它并不意味着Dalvik(Android的“java vm”)。虽然Android确实有“准备好”的SCTP支持,但它还没有在Dalvik(至少不是4.2)。但是,您可以创建一个Java类,就像在包中一样,它将使用SCTP调用包装本机库。由于.NET权限,它在Android中有点棘手,但仍然可以管理(来自经验)。