我是靠谱客的博主 阔达黑猫,最近开发中收集的这篇文章主要介绍SCTP 的安装与编程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文转自 http://blog.csdn.net/elainezhang/article/details/7046655

SCTP 提供信息的可靠传输。在LTE eNB 中,S1 Control Plane interface上的S1-AP协议信息,以及X2 Control Plane interface上的X2-AP协议信息,利用SCTP进行传输。MME建立SCTP Server,监听来自于eNB的SCTP连接。eNB初始化后,则建立一个Sctp client,并与相应的MME建立连接。连接建立之后,MME和eNB可通过SCTP connection发送/接收数据。


安装

  • Linux 2.6以上版本,提供SCTP支持。可通过以下命令,查看内核

> lsmod | grep sctp

  • Apt-get install lksctp-tools (亦可在网站上直接下载,安装)

测试:

run SCTP server in one terminal,

>sctp_darn –H 0 –P 2500 –l

run SCTP client in another terminal,

>sctp_darn –H 0 –P 2600 –h 127.0.0.1 –p 2500 –s

  • 下载 Lksctp-tools-1.0.11.tar.gz,解压缩。运行.

./configure

make

make install //install the -lsctp

  • >cp sctp.h /usr/include/netinet (if needed)


Note:

若内核不提供支持,可编译配置内核,以支持sctp。

Make menuconfig (CONFIG_IP_SCTP=m, CONFIG_SCTP_DBG_MSG=y, CONFIG_SCTP_DBG_OBJCNT=y)


编程

主要函数:

client

》socket( AF_INET, SOCK_STREAM, IPPROTO_SCTP )

》bind( listenSock, (struct sockaddr *)&servaddr, sizeof(servaddr) ) //server

》setsockopt( connSock, IPPROTO_SCTP, SCTP_INITMSG, &initmsg, sizeof(initmsg) )

》listen( listenSock, 5 ) //server

》connect( connSock, (struct sockaddr *)&servaddr, sizeof(servaddr) ) //client

》accept( listenSock, (struct sockaddr *)NULL, (int *)NULL )  //server

》sctp_recvmsg( connSock, (void *)buffer, sizeof(buffer), (struct sockaddr *)NULL, 0, &sndrcvinfo, &flags )

》sctp_sendmsg( connSock, (void *)buffer, (size_t)strlen(buffer), NULL, 0, 0, 0, LOCALTIME_STREAM, 0, 0 )

》close(connSock)

 

编译选项

》gcc –Wall –o xxx xxx.c –L/usr/local/lib –lsctp

》 ./xxx


最后

以上就是阔达黑猫为你收集整理的SCTP 的安装与编程的全部内容,希望文章能够帮你解决SCTP 的安装与编程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部