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