c - 在测试中写入套接字文件描述符并使用 recv() 读取它们
问题描述
我的代码循环和调用recv()
,聚合 TCP 字节以创建应用程序消息。
因为逻辑很复杂,我想在单元测试中复制它。我不想模拟(并将函数调用转移到其他地方)。我想要write()
一个文件描述符并执行我的代码调用recv()
。
在测试中,我write()
为描述符创建了一个套接字和字节:
MY_TEST()
{
int sock = socket(AF_INET , SOCK_STREAM , 0);
write(sock, testData, sizeof(testData));
char* packets = getPackets(sock);
}
但是,上面的代码在以下情况下崩溃write()
:
received signal sigpipe broken pipe
我想这是因为我没有打电话connect()
。
有没有一种简单的方法可以在测试中将字节写入文件描述符并使用 接收它们recv()
?
解决方案
推荐阅读
- kubernetes - 即使当前上下文设置为远程集群,Kubectl 也以本地集群为目标
- c++ - 我是 C++ 新手,你能解释一下这种情况下的指针吗
- javascript - 如何在 CSS 中使用 macOS 系统强调色?
- oozie - 我可以使用 oozie 动作作为我多次调用的模板吗?
- haskell - 为什么在证明与 Monads 等价时,ArrowApply 是唯一的选择?
- java - Java Spring:如何使用 WebSocket 实时获取实体的详细信息?
- c++ - 为什么我应该在异常处理中使用 std::cerr 而不是 std::cout?
- angular - 检查异步后,表达式发生了变化?
- python - 根据间隙大小更改 numpy 数组中的间隙
- javascript - 无法在自动测试硒中的我的个人资料下打开 chrome 浏览器