使用c++将非文本文件从一台机器发送到另一台机器

Sending non-text files from machine to another using C++

本文关键字:一台 机器 c++ 文件 使用 文本      更新时间:2023-10-16

我正在尝试构建一个应用程序,允许用户在LAN ~ TCP/IP中将文件/目录从其计算机传输到另一台计算机,而不需要接收计算机用户的任何干预。

要处理这个问题,我认为Sockets是最好的选择。因为如果我使用FTP并且让接收者的计算机的FTP端口持续打开,那将是一个漏洞。

使用Sockets是最好的选择吗?

如果是,如何发送目录和非文本文件抛出套接字?

说到安全,其实就是"无论你做什么,只有保存好登录所需的密码/凭据才能保证安全"。使用FTPS或SSH协议将加密机器之间的通信,确保外部没有人可以"看到"文件是什么(或密码等)。SSH还具有识别远程机器是否突然更改的功能,因此您可以识别是否有人引入了"中间人"攻击(即假装是您要发送的实际机器)

至于发送非文本文件,在我所知道的所有情况下,它应该和发送文本文件没有什么不同。当然,如果你使用FTP,你需要在发送二进制文件之前将协议设置为"二进制模式",因为有些系统会"修改"内容(例如翻译CR, LF和CRLF序列以匹配目标-当文件中所有值为0x0A的字节都被0x0D 0x0A替换时,JPG图像肯定会看起来很奇怪…)。

当然,你也可以在接收机器上设置一个带有合适软件的web服务器,并使用HTTP/HTTPS协议上传文件-有或没有密码保护(在HTTPS中,只要没有"外部信任组"可以访问实际的发送/接收机器,密码是安全的,因为流量是加密的)。

实际上还有几百种其他的解决方案。如果对你要解决的问题没有更多的了解,就很难制定出非常具体的解决方案。

您将需要接收机器上的某种服务器,因为通常没有任何进程侦听并将它接收到的内容写入文件系统。在编写大量代码之前,先练习一下netcat(也称为nc)。看到这里。

相关文章: