【发布时间】:2017-07-28 08:58:24
【问题描述】:
在我的项目中有很多 C 文件。 在这里,我必须使用套接字编程从我的进程发送一个缓冲区来处理。我尝试使用 send 系统调用发送缓冲区,但尽管数据/缓冲区被传输到进程,但它返回零。
在wireshark中我可以看到传入和传出的数据包。
实际上 send 系统调用应该返回发送的字节数,但我收到了零。那么它是如何从我的进程传输到另一个进程的呢?
有人可以帮我解决这个问题吗?如何调试/理解(发送调用到另一个进程接收调用后在 linux 中涉及/执行的步骤)。
至少建议我一些工具和步骤/程序来调试套接字编程。
【问题讨论】:
-
我建议
strace(系统调用跟踪器)。它将跟踪send系统调用以及其他系统调用。 -
能否请您使用示例程序详细说明一下。我们如何从发送进程跟踪到接收进程,以及如果我们有多个接收者,我们如何说它是接收者。@ks1322
-
您必须分别跟踪所有进程:发送者和每个接收者(如果它们是多个)。
标签: c linux sockets linux-kernel