【问题标题】:sending file by C++通过 C++ 发送文件
【发布时间】:2010-01-19 07:35:48
【问题描述】:

我想通过网络发送一个 C++ 文件(用于聊天程序) 我该怎么办?

【问题讨论】:

标签: c++ c network-programming network-protocols


【解决方案1】:

看看http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/examples.html。 Iostreams 示例应该为您提供了良好的第一步。 Asio 是 boost 项目的可移植网络库。 Boost 适用于当今可用的大多数平台。

您可以将文件流式传输到 TCP 流中。

【讨论】:

    【解决方案2】:

    使用开源 FTP 库获得更强大的应用程序。阅读 this 线程了解基于 c++ 的开源库。

    【讨论】:

    • 我完全不同意。 FTP 有很多固有的问题(尤其是现在所有的 NAT 都在路上),对于新的应用程序当然应该避免。
    【解决方案3】:

    这很容易。设置 TCP/IP 套接字,然后将文件拆分为数据包并发送它们。 TCP 是可靠的,因此所有的数据包都会以正确的顺序到达,并会处理重传等。

    但是,如果您需要使用不可靠的传输方式(例如 UDP),请查看 stop and wait(最简单)、go-back-nselective repeat(这两种方式都比较难,但效率更高)。

    【讨论】:

      【解决方案4】:

      您可以打开两者之间的直接连接并将内容发送到文件。为此,一侧是客户端,另一侧是发送者。

      你可以看到一个简单的实现here

      【讨论】:

        【解决方案5】:

        您将做一些称为套接字编程的事情。请参考Beej's Guide to Networking了解所有详细信息和问题的解决方案。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-09-07
          • 2012-01-06
          • 1970-01-01
          • 2018-10-19
          • 2010-11-11
          • 1970-01-01
          相关资源
          最近更新 更多