可以提升::asio::async_read_until检测无尽的流
Can boost::asio::async_read_until detect an endless stream
我正在使用boost::asio::async_read_until从套接字读取消息,使用换行符作为分隔符。
例如 boost::asio::async_read_until(socket, buffer, "", .....(
一切都很好,工作正常。
有没有另一种方法来使用此函数或类似的方法,可以检测没有换行符常量的无穷无尽的字符序列。
例如,恶意用户可能会在我的服务器上触发连续的零序列
socat/dev/zero TCP4:localhost:55555
我不可能是历史上第一个遇到这个问题的人
您可以使用 4 个重载中的版本 4:
http://www.boost.org/doc/libs/1_62_0/doc/html/boost_asio/reference/async_read_until/overload4.html
在函数对象(通常是状态机的接口(中,您可以计算字符数、检测非法数据流或任何其他必要的手段。
值得一提的是,如果您的应用程序在恶劣的环境中运行(即面向互联网(,那么您可能希望使用async_read_some
来馈送状态机,并且需要一个计时器来捕获和终止占用资源的连接。
相关文章:
- 使用CMake检测支持的C++标准
- 当套接字连接断开时检测C/C++Unix
- C/C++预处理器是否可以检测一些编译器选项
- WMI检测进程创建事件-c++
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 下面是我为检测链接列表中的循环而制作的代码
- 落砂模拟碰撞检测C++和SFML
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么C++编译器没有检测到正确声明的类?
- 检测win32服务创建和删除的最佳方法
- 正在LLVM中检测整数比较条件
- 如何在鼠标挂钩过程中检测拖动
- 位移操作和位掩码未检测到重复字符
- 检测 COFF 对象文件中C++内联符号
- qmake:检测目标位宽(32 位或 64 位)
- 增强精神解析器规则以检测语句中的特殊结尾
- 用于C++的静态二进制检测或二进制重写工具和框架
- Tensorflow对象检测在Python和C++(OpenCV)之间有不同的结果
- C++中的张量流对象检测
- 如何在OpenCV中检测这是谁的脸?