我创建了一个TCP客户端和服务器程序。 TCP客户端向服务器发送sync + Ack
数据包,服务器使用RST
数据包响应客户端。在客户端收到此打包后,客户端网络堆栈本身会为该流生成tcpdump
数据包。我已经在RST
命令的帮助下验证了相同的内容。输出显示服务器未向客户端生成任何{{1}}数据包。我已经搜索了谷歌进一步调试,但无法找到任何帮助。
任何人都可以帮助我进一步调试吗?
答案 0 :(得分:0)
日志是应用程序级别处理应用程序的工作方式。它可能是错误日志,控制台日志,访问日志等。(不同应用程序的不同类型的日志)。内核是否发出错误或任何其他原因并不重要,如果您用于创建套接字和处理连接的应用程序创建日志,它将存在或不存在。
此外,日志文件存在于Linux文件系统的/var/log
文件夹中。所以,这可能会有所帮助。
PS:如果你能告诉你用什么来创建套接字和更多细节,我可能会给出一个更具体的答案。我希望这能回答你的问题。
答案 1 :(得分:0)
每个socket - 相关的system call(特别是socket(2),connect(2),bind(2),send(2)等......)报告错误条件(例如,通过返回-1并设置errno(3) ...)。您应该系统地检查任何syscalls(2)
的失败作为vish4071 answered,您还应检查日志文件和/或使用dmesg(1)。通过strace(1)运行您的程序也可能会有所帮助。不要忘记使用所有警告和调试信息(例如使用gcc -Wall -Wextra -g
)编译它并使用调试器(gdb
)