腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(250)
视频
沙龙
1
回答
在recvfrom()之前获取udp格式的消息长度
、
我正在用C语言为linux编写一个应用程序,它将接收成千上万的UDP消息,这些消息可能是可变大小的。在使用recvfrom() syscall将消息读入缓冲区之前,我必须以某种方式获取消息大小。我不能为最大可能的消息分配内存,因为我使用9,000的MTU,并获得数千条消息,因此大量内存将被浪费。我在谷歌,这是有可能找出的大小的消息与SO_NREAD选项的getsockopt系统调用,但这只适用于BSD。我知道消息位于Linux内核的某个地方,因为我的套接字在非阻塞模式下工作,并且内核事件通知我数据可用,所以,它必须在某个地方存储消息长度,但我如何才能获得它?
浏览 0
提问于2011-09-17
得票数 1
回答已采纳
1
回答
如何获得tcp/udp套接字的recv上限和当前的数据大小?
、
、
getsockopt()只得到插座的盖子。反正我也找不到数据大小?
浏览 5
提问于2022-07-08
得票数 -1
1
回答
我能用其他进程的管道做点什么吗?
、
这里我想检查两个正在运行的进程之间的管道的状态。我可以使用ls -l在/proc/pid/fd中识别两端的管道文件描述符,从而识别管道编号,如下所示: l-wx------ 1 user user 64 Jul 22 08:53 5 -> 'pipe:[135687452]' 据我所知,管道在Linux vfs哲学中被视为一个文件,我怀疑有一些方法可以深入研究它,而不会干扰所有者进程。是否可以使用文件描述符或管道ID来访问更多的管道?我希望我能得到管道中的内容或管道中的内容长度。 非常感谢!
浏览 11
提问于2021-07-25
得票数 0
1
回答
单次inotify读取会造成无限循环
从标题开始。程序将等待第一个事件,然后进入无限循环-为什么它不一次只处理一个事件?#include <stdlib.h>#include <unistd.h> { int a; wd = inotify_add_watch (id,
浏览 0
提问于2012-12-12
得票数 1
2
回答
确定系统队列中下一个UDP数据报的大小
、
、
、
、
--我发现我可以使用ioctlsocket和
FIONREAD
来找出整个队列的大小,但是我没有找到关于第一个数据报的任何信息。 因此,我的问题是:是否有一种方法可以使用sockets?
浏览 11
提问于2010-09-23
得票数 0
2
回答
NetBSD的FIONSPACE ioctl在Linux中的等价物是什么?
、
、
、
我发现NetBSD有
FIONREAD
,FIONWRITE和FIONSPACE来实现这些相关的目的。但是,我只能在Linux中使用
FIONREAD
。
浏览 2
提问于2011-08-09
得票数 1
回答已采纳
2
回答
UDP (数据报)套接字的
FIONREAD
返回什么?
、
、
、
ioctl of
FIONREAD
返回哪一个,下一个数据包的长度,还是缓冲区中所有数据的长度?客户端1:v2包客户端2:^两个包费恩雷德?
浏览 5
提问于2013-06-08
得票数 6
回答已采纳
2
回答
在哪里可以找到系统调用参数的定义?
、
、
.); ioctl(fd,
FIONREAD
,&nread); 在Linux中的何处可以找到此
FIONREAD
信息?此信息在何处定义?像这样的类型有多少种?
浏览 7
提问于2016-04-20
得票数 1
1
回答
据
FIONREAD
介绍,Linux SO_RCVLOWAT被epoll违反
、
、
这可以与
FIONREAD
ioctl结合起来,以读取可立即使用的字节数,以防止处理循环中的部分读取。即使
FIONREAD
报告的值小于SO_RCVLOWAT,Epoll也会触发READ事件。=9647is
FIONREAD
lying?=9647 is
FIONREAD
lying?
浏览 0
提问于2022-11-13
得票数 1
2
回答
获取读取前在串行端口上等待的字节数,linux
、
我正在将一个Win32串行类转换为Linux (Ubuntu),这个串行类的一个必需功能是在读取串行端口之前“窥视”串行缓冲区,看看有多少字节在串行端口上等待。在windows中,我使用了COMSTATS,但在Linux中似乎找不到类似的功能。在Linux上,如何读取在串行端口上等待的字节/字符的数量,而不从串行端口缓冲区中删除它们?
浏览 0
提问于2011-05-05
得票数 8
回答已采纳
1
回答
带
FIONREAD
返回值的ioctl
、
、
这个问题与有关if( ioctl(socketId,
FIONREAD
, &totalPending) == -1 ) printf("%d", totalPending
浏览 2
提问于2013-09-24
得票数 2
回答已采纳
1
回答
ioctl()的
FIONREAD
在C套接字上可靠吗?
、
在下面的代码中,我看到了奇怪的行为:ioctl(conn_fd,
FIONREAD
, &len);... int sock_fd
浏览 0
提问于2017-06-04
得票数 0
回答已采纳
1
回答
如何用C语言实现Java函数` InputStream ()`?
、
、
、
、
如何用C语言实现Java InputStream函数available()?
浏览 1
提问于2013-02-19
得票数 0
2
回答
是否可以读取在Linux c++的udp套接字缓冲区中缓冲了多少字节?
、
不幸的是,
FIONREAD
在linux下无法做到这一点。
浏览 11
提问于2013-04-20
得票数 2
1
回答
为什么使用Socket.ReceiveLength不安全?
、
即使是也不保证返回准备好在套接字缓冲区中读取的字节的准确结果,但是如果您查看它,当您将-1放在Socket.ReceiveBuf (这是ReceiveLength包装的地方)时,它会调用ioctlsocket和
FIONREAD
例如:ioctlsocket(Socket.SocketHandle,
FIONREAD
, Longint(i));
浏览 2
提问于2013-03-20
得票数 1
回答已采纳
2
回答
确定准备接受recv()'d‘的字节数
、
、
我可以使用select()来确定对recv()的调用是否会阻塞,但是一旦我确定它们是要读取的字节,那么在实际调用recv()之前,它们是不是可以查询当前有多少字节可用呢?
浏览 1
提问于2010-10-14
得票数 1
回答已采纳
2
回答
如何在Python中的recv之前找出socket中的多少字节?
、
、
、
我有一个TCP处理数据流。它一次需要4096字节,但我需要一种方法,在重新编码之前找出整个套接字的大小。这样我就可以确定套接字在切换套接字之前将被读取多少次。它还会通知,这是这个套接字的最后一个recv,这样我就可以在它可用时选择切换到另一个套接字之前对它做一些事情。 fdset = [sock, remote] r, w, e = select.select(fdset, [], []) # How to find out how m
浏览 3
提问于2017-06-24
得票数 2
回答已采纳
1
回答
为什么ioctl
FIONREAD
在Mac上返回0,在Linux上返回一个随机数?
、
、
、
、
milliseconds}; int result; ioctl(fd,
FIONREAD
浏览 0
提问于2018-09-25
得票数 0
1
回答
Winsock UDP套接字接收缓冲区利用率
、
、
、
我已经建立了一个UDP套接字:然后修改套接字参数以使用大于默认的缓冲区(例如,100,000个字节):bufferSizeLen = sizeof(bufferSize);稍后,我想查询套接字,以了解缓冲区中目前存储了多少数据(即有多少数据报等待通过调用
浏览 0
提问于2014-06-26
得票数 1
回答已采纳
1
回答
是否有一种方法来查询串口上可用的数据量?
、
、
、
、
我刚刚开始研究串行数据采集,我想知道是否有一种检查方法,数据是否在给定端口上可用,以及是否有这么多数据?if(Serial.available() > 0) { ... }但是,考虑到相反的情况:“程序正在检查从Arduino发送的串行”,到目前为止,我已经看到在C中实现类似的唯一方法是通过将termios属性VMIN和VTIME设置为特定值来引导read()
浏览 1
提问于2016-10-19
得票数 0
回答已采纳
点击加载更多
相关
资讯
鸿蒙轻内核四大基础功能介绍
(三)服务器端的程序架构介绍2
热门
标签
更多标签
云服务器
ICP备案
对象存储
云点播
即时通信 IM
活动推荐
运营活动
广告
关闭
领券