【发布时间】:2010-01-19 07:35:48
【问题描述】:
我想通过网络发送一个 C++ 文件(用于聊天程序) 我该怎么办?
【问题讨论】:
标签: c++ c network-programming network-protocols
我想通过网络发送一个 C++ 文件(用于聊天程序) 我该怎么办?
【问题讨论】:
标签: c++ c network-programming network-protocols
看看http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/examples.html。 Iostreams 示例应该为您提供了良好的第一步。 Asio 是 boost 项目的可移植网络库。 Boost 适用于当今可用的大多数平台。
您可以将文件流式传输到 TCP 流中。
【讨论】:
使用开源 FTP 库获得更强大的应用程序。阅读 this 线程了解基于 c++ 的开源库。
【讨论】:
这很容易。设置 TCP/IP 套接字,然后将文件拆分为数据包并发送它们。 TCP 是可靠的,因此所有的数据包都会以正确的顺序到达,并会处理重传等。
但是,如果您需要使用不可靠的传输方式(例如 UDP),请查看 stop and wait(最简单)、go-back-n 或 selective repeat(这两种方式都比较难,但效率更高)。
【讨论】:
您可以打开两者之间的直接连接并将内容发送到文件。为此,一侧是客户端,另一侧是发送者。
你可以看到一个简单的实现here。
【讨论】:
您将做一些称为套接字编程的事情。请参考Beej's Guide to Networking了解所有详细信息和问题的解决方案。
【讨论】: