
LINUX编程实战指发送UDP消息
初始化本端UDP套接字:首先创建本地UDP套接字。 设置非阻塞模式:使用fcntl函数设置O_NDELAY选项,确保发送操作不会阻塞。 socket选项设置:使用setsockopt函数设置SO_REUSEADDR选项,允许立即重复使用本地端口。 发送缓冲区管理:定义发送缓冲区大小和长度,为后续数据发送做准备。
发布日期:2025-04-10 06:55:17
浏览次数:7
分类:精选文章
本文共 823 字,大约阅读时间需要 2 分钟。
调试媒体服务器遇到被叫端媒体流抖动问题,需先从网络问题与服务器代码两个方面排查。为便于调试,我编写了一个UDP发送的小工具,支持根据指定IP、端口和发送时长,按照20ms间隔重复发送RTP流。
编程思路:
以下是具体实现代码片段:
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选项,可以避免由于本地端口未释放而导致的发送失败。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月24日 09时40分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux系统中的系统盘和数据盘是什么意思?
2023-02-05
Linux系统中的默认安装目录 - 不能随意更改名字
2023-02-05
Linux系统中进程运行时间的五大精准检测法
2023-02-05
Linux系统中,shell脚本的异步执行
2023-02-05
Linux系统之软件管理:Ubuntu彻底删除软件及配置文件
2023-02-05
Linux系统信息查看命令
2023-02-05
Linux系统具体硬件型号查看与系统故障定位分析
2023-02-05
Linux系统初始化命令的备忘单,Linux运维工程师收藏!
2023-02-05
Linux系统启动流程
2023-02-05
Linux系统命令简单介绍
2023-02-05
Linux系统在线安装anaconda(Centos)
2023-02-05
Linux系统基本网络配置之ifconfig命令
2023-02-05
Linux系统基础-管理之加密、解密、Openssl基本应用及CA实现过程
2023-02-05
Linux系统大量的TIME_WAIT、CLOSE_WAIT连接问题解决
2023-02-05
linux系统如何实现内网穿透、外网访问
2023-02-05
linux系统如何实现内网穿透、外网访问
2023-02-05
Linux系统如何显示系统内存使用情况,free命令来了!
2023-02-05
linux系统如何进入屏保,linux上屏保设置
2023-02-05
linux系统学习笔记:文件、目录、用户
2023-02-05