腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
在
Linux
中
,
recv
()
可以
工作
,
但
recvmsg
()
不能
c++
、
linux
、
sockets
、
embedded
、
embedded-linux
我把这段代码放在一个函数
中
,
在
树莓派上运行: struct sockaddr_in addr_buffer;struct msghdr(udpsocket_fd, &msg_buffer, 4, 0); int msgs_received =
recvmsg
(udpsocket_fd, &msghdr, 0); 根据我所读到的,
recvmsg
()系统调用应该一次返回msghdr所指向的iovec
中
的一条消息(因为iovec数
浏览 15
提问于2019-03-12
得票数 1
回答已采纳
2
回答
在
C
中
,对于套接字,
recvmsg
()有队列吗?
c
、
sockets
、
recv
如果C套接字的
recvmsg
()有一个队列,我如何知道队列
中
积压了多少项?while (
recvmsg
(SocketA,...) > 0) ... ...我检查
浏览 1
提问于2017-04-26
得票数 2
3
回答
我是否
可以
从套接字
中
恰好读取一个UDP数据包?
c
、
udp
在
Linux
上使用UNIX套接字API,有没有办法保证我读取一个UDP数据包,并且只读取一个UDP数据包?我目前正在使用
recvmsg
从非阻塞套接字读取数据包,其缓冲区大小略大于内部网络的MTU。这应该
可以
确保我总是能收到完整的UDP数据包,但我
不能
保证每次
recvmsg
调用收到的数据包都不会超过一个,如果数据包很小的话。
recvmsg
手册页引用了MSG_WAITALL选项,该选项尝试等待,直到缓冲区被填满。我们没有使用它,所以这是否意味着
recvmsg</em
浏览 1
提问于2010-03-31
得票数 9
回答已采纳
1
回答
无法推断适当的寿命:借用可变缓冲到期货
rust
、
lifetime
我实现了一个Tokio Future,它具有以下高级逻辑: extern crate futures; use self::futures::{Future, Poll, Async}
浏览 1
提问于2017-09-21
得票数 0
1
回答
将超时应用于ASIO
中
的UDP调用receive_from
c++
、
c++11
、
networking
、
asio
for (;;) boost::array<char, 1000>
recv
_buf; asio::error_code error; remote_endpoint, 0, error
在
ASIO
中
设置同步UDP呼叫超时的正确方法是什么(如果可能,也<em
浏览 13
提问于2017-04-27
得票数 1
1
回答
C/C++
recvmsg
()导致错误‘检测到未对齐的tcache块’,
但
recv
()成功
c++
、
linux
、
sockets
、
network-programming
通过Epoll接收UDP数据包时,我观察到以下错误: 'unaligned tcache chunk detected' 我已经找到了代码的哪一部分,
但
这没有多大意义。/ More code} _buffer是声明为:char _buffer[65'536];的类成员 通过反复试验,我将问题的范围缩小到下面这一行: const int64_t n =
recvmsg
(sock, &msg, 0); 所以我用一个对::
recv
()的调用替换了::
recvmsg
()
浏览 83
提问于2021-09-24
得票数 0
回答已采纳
1
回答
无法连接ubuntu上的socket服务器
python
、
sockets
socket-server代码和socket-client代码
可以
在
我的本地主机上运行,但是当我
在
Ubuntu服务器上运行socket-server代码时,我的本地主机上的socket-client代码
不能
连接到Ubuntu server.And,Ubuntu服务器上的socket-client代码
不能
连接到我的本地主机服务器。threading user_list.append(conn) while 1:
浏览 114
提问于2018-12-21
得票数 0
回答已采纳
1
回答
在
HW时间戳
中
没有所需类型的消息
c
、
sockets
、
linux-kernel
、
timestamp
我
在
多平台hw时间戳应用程序下
工作
。我对
linux
时间戳行为感到有点困惑。我从
recvmsg
中
得到了错误“没有想要的类型的消息”,并尝试像错误一样处理它。下面是我的调试代码。发送数据包的克隆
可以
用带有标志|= MSG_ERRQUEUE的
recvmsg
接收。
recvmsg
使用sock_extended_err (ee_errno==ENOMSG)返回传出数据包。因此,
linux
应该将传出数据包的克隆保持
在
错误队列
浏览 1
提问于2015-05-25
得票数 1
1
回答
在网络套接字上的
recv
系统调用
中
接收到ENOENT
network-programming
、
boost-asio
在
我的C++客户机
中
,我使用boost向服务器发送和接收数据。
但
偶尔,当我从套接字boost读取时,会报告系统错误2,它对应于"ENOENT“(没有这样的文件或目录)。有人能说出在
recv
/
recvmsg
系统调用
中
返回ENOENT的条件是什么吗?
浏览 3
提问于2016-03-11
得票数 1
4
回答
什么时候加入名字,什么时候不加入?
naming-conventions
大多数语言都给出了用下划线分隔名称
中
不同单词的指导原则(python、C等)或者使用驼峰式大小写(Java)。然而,问题是何时将这些名称视为单独的名称。选项包括:这是什么直觉? 这个问题看起来微不足道。
浏览 2
提问于2009-04-11
得票数 1
回答已采纳
1
回答
在
UDP数据报数据字段开头添加自定义数据(
在
linux
内核
中
)
linux-kernel
、
network-programming
、
udp
我想在UDP数据字段的开头添加此协议的报头,就在将来自用户空间的数据复制到skBuff时,我还想在UDP将其提交给套接字之前处理该数据,以便我
可以
提取标头并在内核中进行所需的处理。所以, 如何确保
在
struct new_header函数
中
的数据开头添加我的头(例如udp_sendmsg() )。我假设,
在
将用户空间中的任何实际数据复制到skbuff数据字段之前,或者最晚
在
UDP校验和计算数据之前,应该将其复制到skbuff的数据字段。这在代码
中
到底是在哪里发生的?
在
浏览 3
提问于2016-06-24
得票数 0
回答已采纳
1
回答
socket.
recvmsg
忽略了ancbufsize,辅助数据
python
、
python-3.x
、
sockets
使用TCP套接字,
在
unix系统上,python似乎完全忽略了我的ancbufsize。data, ancdata, msg_flags, address = sock.
recvmsg
(1, socket.CMSG_LEN(4)) 如果我扼杀了我的程序,我看到msg_controllen是0,我似乎
不能
做任何事情来使它具有一个非零的值。运行漂亮的股票centos
浏览 1
提问于2019-05-29
得票数 1
回答已采纳
2
回答
不挂起从TCPSocket读取整个消息
ruby
、
server
、
tcp
、
ruby-3
我
在
Ruby3.0.2
中
组装了一个TCPServer,我发现在不阻塞的情况下(直到套接字关闭),我似乎无法读取整个包。我尝试过的阻塞方法是.read、.gets、.readlines、.readline、.
recv
和.
recvmsg
。其他的(如).readline,
recv
方法)不读取整个消息。现在,我
可以
读取每一行,直到看到空行并从那里解析HTTP头。特别是.
recv
_nonblock和.
recvmsg
_nonblock。这两个抛出错误(资源暂时不可
浏览 6
提问于2021-09-13
得票数 0
2
回答
使用sendmsg,
recvmsg
的优点是什么?
sockets
我正在学习
Linux
网络编程,并看到了一些有关从套接字读取、写入数据的功能。发送,发送,发送。据我所知,
recvmsg
可以
用来传递文件描述符,为从/写入套接字添加超时。你能告诉我使用
recvmsg
,sendmsg比
recv
,sendmsg还有什么优势吗?非常感谢。
浏览 5
提问于2015-01-23
得票数 1
1
回答
TCP套接字连续返回EAGAIN
tcp
、
recv
在
我的测试
中
,我发现当我从发送方发送1000到5000字节的数据包时,它们会被组装/捆绑在大小为8000到14000字节的接收器上。我检查了wireshark的抓捕以证实这一点。我有两个问题: 1)谁将这些数据包捆绑在中间,接收者接收到这些数据包,并使用select()检测数据并调用
recvmsg
?2)当接收端长度增加时,实现了部分接收,从而使“
recvmsg
”也返回部分数据。在这种情况下,
在
一段时间后,
recvmsg
调用将返回0字节的EAGAIN。由于对等点仍在发送数据包,因
浏览 3
提问于2014-06-02
得票数 0
4
回答
系统调用和EINTR错误代码
c
、
posix
、
interrupt
、
system-calls
、
eintr
我
在
C中有以下系统调用:unlink()fcntl()socket()listen()使用此配置: 这里还有一个提交,我
在
一些我知道返回EINTR或EAGAIN:的系统调用
中
添加了一些EINTR/EAGAIN处理
浏览 12
提问于2014-09-08
得票数 6
回答已采纳
2
回答
结构msghdr的msg_name未指向
linux
安全模块的socket_
recvmsg
中
的结构sockaddr_in
c
、
linux
、
linux-kernel
、
network-programming
、
selinux
我
在
Linux
安全模块中使用了一个安全操作'socket_
recvmsg
‘。int (*socket_
recvmsg
) (struct socket *sock,struct msghdr *msg, int size, int flags) msg->msg_ sockaddr_in然而,我的socket_
recvmsg
函数
中
的msg->msg->namelen总是112,远远大于sizeof(结构sockaddr_in)。有人知道socket_
r
浏览 0
提问于2015-07-17
得票数 0
3
回答
使用MSG_NONBLOCK和MSG_WAITALL的
recv
linux
、
sockets
、
network-programming
、
nonblocking
我想使用带有非阻塞标志的
recv
syscall MSG_NONBLOCK。但是有了这个标志,syscall
可以
在
完全满足请求之前返回。所以, 我
可以
添加MSG_WAITALL标志吗?如何用非阻塞的
recv
将阻塞
recv
重写到循环中?
浏览 10
提问于2010-05-31
得票数 11
4
回答
读取c ++
中
的tcp套接字,然后丢弃数据而不被复制到用户空间。
c
、
linux
、
web
、
tcp
当我
可以
读取套接字缓冲区而不实际读取它时,有一个peek选项(了解可用于后续读取的字节数)。fcntl呼叫有这样的替代方案。我想知道是否有一种方法
可以
在
没有将数据从套接字复制到应用程序缓冲区的情况下实际读取套接字缓冲区?因此,如果您愿意的话,让内核感到困惑:我们的目标是
在
设计类似于web服务器上的负载创建工具时,不要浪费时间复制实际的数据:我们需要tcp通信才能正确地实现,但我们不需要接收到的数据。有什么建议吗?
浏览 6
提问于2013-07-13
得票数 1
回答已采纳
1
回答
如何对
Linux
内核进行反优化以避免值的优化
gcc
、
linux-kernel
、
gdb
我正在调试
Linux
内核。
在
使用gdb调试它时,我发现一些值被优化了。如下图所示。我如何去优化
Linux
内核,以避免这些变量被优化出来?
浏览 4
提问于2017-04-11
得票数 4
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
从linux源码看socket的阻塞和非阻塞
聊聊跨进程共享内存的内部工作原理
网络编程基础漫谈(二)之 socket 的阻塞模式和非阻塞模式
TCP 异常关闭研究分析
网络编程学习
热门
标签
更多标签
活动推荐
运营活动
广告
关闭
领券