Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;如何从TCP套接字(windows)检索ACK_C++_Windows_Sockets_Tcp - Fatal编程技术网

C++ C++;如何从TCP套接字(windows)检索ACK

C++ C++;如何从TCP套接字(windows)检索ACK,c++,windows,sockets,tcp,C++,Windows,Sockets,Tcp,我在获取TCP连接确认信息时遇到一些问题 我已经使用Windows套接字实现了一个基本的TCP套接字服务器(Socket()、listen()、bind()、accept()、send())。通信工作正常,但现在我想检索并观察TCP数据包的传入确认 有人知道我如何通过编程获得这些信息吗 如果您的应用程序需要知道何时收到数据,或者即使在失败的情况下,收到了多少数据,您需要应用程序级别的确认 TCP ACK不属于应用层,它纯粹是第4层簿记信息。如果第7层需要ACK,则需要在第7层添加一个ACK 与此

我在获取TCP连接确认信息时遇到一些问题

我已经使用Windows套接字实现了一个基本的TCP套接字服务器(Socket()、listen()、bind()、accept()、send())。通信工作正常,但现在我想检索并观察TCP数据包的传入确认

有人知道我如何通过编程获得这些信息吗

如果您的应用程序需要知道何时收到数据,或者即使在失败的情况下,收到了多少数据,您需要应用程序级别的确认

TCP ACK不属于应用层,它纯粹是第4层簿记信息。如果第7层需要ACK,则需要在第7层添加一个ACK


与此相关,keep alives也是如此:

您可以使用它来观察传入/传出的数据包。这些数据包由您使用的网络层为您处理。正如@ymonad所说,你可以用wireshark捕捉并查看它们。但我不相信windows套接字允许您访问它们。除非您使用原始套接字,否则您不能。你为什么认为你需要这个?一般来说,TCP中的确认只有在没有后续故障的情况下才能检测到。感谢您的支持。我已经知道如何通过原始套接字嗅探连接。我也考虑过Wireshark,但不幸的是,我需要分析在Windows下通过WLAN和蓝牙进行的通信,并且不支持蓝牙。谢谢Ben!为了进行分析,我在第7层发送了一个ACK,因为我找不到一个在windows下同时适用于蓝牙和WLAN套接字的解决方案。