作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我已使用
连接到现有的 Tap 设备fd = open(...)
现在我想逐包读取它。如果我使用
read(fd,buffer,sizeof(buffer));
我不会准确读取 1 个数据包。
我怎样才能准确读取 1 个数据包?是否有某种 header 说明数据包长度,或者在最坏的情况下,我将不得不自己解析数据包并计算长度?
最佳答案
我错了 read()
从 tap 设备读取字节的方式。事实证明,当我使用 read()
时,它正好读取 1 帧,(如果 n 小于帧大小,则为 n 字节)
关于c - 如何从 linux tun/tap 中逐个读取数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18461365/
我是一名优秀的程序员,十分优秀!