博客
关于我
LINUX编程实战指发送UDP消息
阅读量:796 次
发布时间:2023-02-05

本文共 823 字,大约阅读时间需要 2 分钟。

调试媒体服务器遇到被叫端媒体流抖动问题,需先从网络问题与服务器代码两个方面排查。为便于调试,我编写了一个UDP发送的小工具,支持根据指定IP、端口和发送时长,按照20ms间隔重复发送RTP流。

编程思路

  • 初始化本端UDP套接字:首先创建本地UDP套接字。
  • 设置非阻塞模式:使用fcntl函数设置O_NDELAY选项,确保发送操作不会阻塞。
  • socket选项设置:使用setsockopt函数设置SO_REUSEADDR选项,允许立即重复使用本地端口。
  • 发送缓冲区管理:定义发送缓冲区大小和长度,为后续数据发送做准备。
  • 以下是具体实现代码片段:

    memset(buf, 1, sizeof(buf));char *desip = argv[1];int destport = atoi(argv[2]);int sec = atoi(argv[3]);int count = sec * 1000 / 20;int fd = -1;fd = socket(AF_INET, SOCK_DGRAM, 0);fcntl(fd, F_SETFL, O_NDELAY);int reuse_addr_flag = 1;int success = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse_addr_flag, sizeof(reuse_addr_flag));if (success < 0) {    perror("udp setsockopt(SO_REUSEADDR): ");    close(fd);    return 0;}int sendBufSize, sendBufLength;sendBufSize = 4;

    以上代码实现了UDP套接字的创建与配置,确保了发送操作的高效性。通过设置SO_REUSEADDR选项,可以避免由于本地端口未释放而导致的发送失败。

    转载地址:http://llkfk.baihongyu.com/

    你可能感兴趣的文章
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
    查看>>
    NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
    查看>>
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
    查看>>
    NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
    查看>>
    NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>