linux 下setsockopt失效。

需求是在Linux环境中,改变单个进程的socket接收缓冲区大小,当前使用setsockopt函数始终无法将值设为1,总是默认为2304。全局设置可以通过sysctl修改tcp_rmem,但希望找到只影响当前进程的方法。寻求技术解决方案,愿意付费。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有linux的开发没有?
需求就是让下面的代码生效,设置接收缓冲区大小为1
    val = 1;
    datesize = sizeof(int);
    setsockopt(abindIp_info->socketFd, SOL_SOCKET, SO_RCVBUF, (char*)&val, datesize);   //这里怎么设置都是2304
    
成功与否就是下面取来是1就算功能实现。
    getsockopt(abindIp_info->socketFd, SOL_SOCKET, SO_RCVBUF, (char*)&val, &datesize);
    
有实力的朋友看看吧,有什么办法可以实现,付费实现。
用这个全局设置就可以了。sysctl -w net.ipv4.tcp_rmem='1024 1 1'  但是这是全局的,我要的是进程自身。

有这个技术能搞定的吗?付费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值