7

Come posso utilizzare il protocollo SCTP in Android?Supporto del protocollo SCTP in Android

Sono già consapevole del fatto che i sistemi Android non supportano SCTP per impostazione predefinita, tuttavia è possibile abilitarlo inserendo il modulo del kernel SCTP o ricostruendo il kernel con SCTP abilitato nella configurazione dei moduli.

Ho bisogno di alcune informazioni su questo problema. È possibile? Come fare ad Android supportare il protocollo? Come compilare il modulo del kernel e inserirlo correttamente? Se potessimo riuscire a far sì che il sistema lo supporti, come possiamo usare il protocollo? L'API Java su Android supporta SCTP?

risposta

8

Andare in giro con un modulo è la strada giusta. Per rispondere alle vostre domande:

  • SCTP è già fornita come modulo del kernel nei sorgenti di Linux - "CONFIG_IP_SCTP = m" consentirebbe quel modulo. E puoi cambiarlo in una "y" su hard link, anche se questo è probabilmente irrealizzabile, dal momento che dovresti ricostruire l'intero kernel per quello.

  • Il modulo dovrebbe essere ancora creato per versione del kernel. Quindi, fondamentalmente per venditore, è necessario ottenere i loro sorgenti del kernel (fattibili), e quindi compilare il modulo su di esso.

da usare: in modalità utente - creerebbe il socket chiamando s = socket (AF_INET [6], SOCK_STREAM, IPPROTO_SCTP); Da quel punto, le API socket funzionano esattamente allo stesso modo, con alcune eccezioni (vale a dire setsockopt, che è particolare per il tipo di protocollo).

Da Java, infatti, supporta il protocollo nelle sue ultime incarnazioni (JDK7 come milestone 3), ma Java lo supporta non significa che Dalvik (il "java vm" di Android) lo faccia. Anche se Android ha il supporto SCTP "pronto", non è ancora in Dalvik (almeno non in 4.2). È possibile creare una classe Java, sebbene, come in un pacchetto, che avvolga una libreria nativa con chiamate SCTP. È un po 'più complicato in Android a causa delle autorizzazioni NET, ma ancora gestibile (dall'esperienza).

+0

Grazie per la risposta utile. Ho intenzione di costruire il modulo per l'emulatore Android, il sorgente del kernel è disponibile per il codename goldfish. Puoi guidarmi o farmi riferimento a un how-to, così posso compilare il modulo per il kernel specifico. Inoltre, come posso rendere persistente il modulo, inserendo il modulo ogni volta durante l'avvio. – Meti

+1

Durante il test, perché il modulo sia persistente, il modo migliore è modificare /init.rc. Per quanto riguarda un how-to ... Fa parte della costruzione del kernel di Linux. Ottieni l'albero dei sorgenti del kernel corrispondente, quindi vai nella directory per sctp (./net/sctp, se la memoria serve). Allora fallo. Ciò produrrà il .ko. Assicurati di compilare usando NDK in modo che esegua il cross-compile su ARM, se sei su un dispositivo. – Technologeeks

Problemi correlati