我是stackoverflow和perl IO :: Socket套接字编程的新手。 我的项目有问题。 我有一个TCP客户端和服务器脚本,客户端可以将文件发送到服务器。 服务器端创建一个存储接收文件的目录。 它可以显示目录中的文件。 它还可以读取文件(txt)或删除文件。
问题是客户方...... 服务器是否也可以向客户端发送文件? 客户端是否也可以从服务器中删除文件?
提前谢谢。
答案 0 :(得分:1)
嗯,是的,没有。
当你谈到创建TCP客户端和服务器时,你所拥有的只有两个管道 - 一种2线铜线电话线。你可以想象,你可以通过电话传输很多东西,你甚至可以实现文件传输协议。但是,这里没有人帮你实际实现这样的协议。这样做可能非常复杂 - 只需查看FTP,HTTP,SMB,NFS,SCP / SSH等协议即可。所有这些协议都可以通过TCP进行通信并发送文件。但它们并不是很简单。
也就是说,您可以实现传输文件所需的非常简单的功能子集,但这将非常简单。如果您的项目不是纯粹的理论,您可能会发现使用某些现有的文件传输协议或者除了新服务之外更容易使用。
此外,当您谈到删除文件时,首先要考虑的是安全性。如果对方要求您删除某个文件,您怎么能相信它是合法的连接?如果有人试图利用您的服务并恶意删除某些关键文件,或者只是通过删除说/etc/passwd
或/etc/shadow
来侵入您的服务器,该怎么办?换句话说,它是一个极其复杂和脆弱的话题,第一条规则是永远不要相信或承担任何关于另一方的事情,就像通过电话与陌生人交谈一样。