2013-03-02 33 views
4

我正在使用套接字编程在C中编写应用程序。我希望将数据从服务器节点发送到客户端节点。我使用套接字描述符上的读写命令分别通过网络获取和发送数据。因为使用的底层协议是TCP/IP,我最终收到了正确的数据。是否有可能在客户端检查是否正确接收数据,实际丢失了多少数据包并重新传输?我正在Linux(debian)环境中编写这个应用程序。检查正确接收的数据包的数量 - 套接字编程

任何帮助,高度赞赏!

-Rahulkumar

+0

如果要确认数据是否正确,则还要发送校验和(例如SHA1)。当然,没有任何系统是100%万无一失的...... – 2013-03-02 20:25:37

+0

“有多少数据包实际上丢失和重新传输” - posix套接字接口没有办法......我想这可以通过tcpdump/wireshark实现。 – 2013-03-02 20:30:43

+0

恩,谢谢Oli Charlesworth和Karoly Horvath。我认为可能有某种方式,因为wireshark工具在它的实现中必须使用一些API来检查重新传输的数据包的数量。我将检查tcpdump的细节。再次感谢。 – 2013-03-02 20:45:51

回答

6

/proc/net/tcp有一个字段​​,您只需find your socket在此列表中。

另一种方法是使用TCP_INFO sockoptstruct tcp_info的当前布局可在linux/tcp.h中找到。您要使用的字段可能是tcpi_retrans

+0

+1对于TCP_INFO - 我希望我可以给更多upvotes – 2013-03-02 21:08:10

+0

哇,这真的很酷的东西..谢谢你nemo和Karoly Horvath。我需要弄清楚使用它的方式。将成功完成后更新你们。谢谢! – 2013-03-02 21:15:16

+0

不要忘记upvoting /接受答案,如果它为你工作,所以它不是悬而未决,因为没有回答:) – nemo 2013-03-02 21:16:30

相关问题