我有 3 台机器(A、B 和 C)连接到路由器。A、B 和 C 在同一个子网中。所有这三台机器都使用 STAF 互连。我使用机器 A 作为 FTP 服务器和机器 B 作为 FTP 客户端。使用来自机器 CI 的 STAF 命令正在机器 B 上启动 FTP 程序(TCL 脚本)。
现在的问题是,C 如何知道 FTP 流量是否在 A 和 B 之间流动?
我有 3 台机器(A、B 和 C)连接到路由器。A、B 和 C 在同一个子网中。所有这三台机器都使用 STAF 互连。我使用机器 A 作为 FTP 服务器和机器 B 作为 FTP 客户端。使用来自机器 CI 的 STAF 命令正在机器 B 上启动 FTP 程序(TCL 脚本)。
现在的问题是,C 如何知道 FTP 流量是否在 A 和 B 之间流动?
ftp 包允许您在命令中指定进度监视器回调ftp::Open
:
package require ftp
proc progressMessage {bytesSoFar} {
puts "Transferred $bytesSoFar; looking good..."
}
set handle [ftp::Open $A $user $pass -progress progressMessage]
# Everything after this is just standard for the ftp package
if {$handle < 0} {
error "could not connect"
}
if {![ftp::Get $handle $remoteFile $localFile]} {
ftp::Close $handle
error "could not transfer"
}
ftp::Close $handle
puts "Transfer completed"
这将在每次传输块时打印一条消息(块大小可在选项中配置为ftp::Open
通过-blocksize
选项;默认情况下为 4096)。在现代网络上,这可能会非常快速地写入消息……</p>
package require ftp
set handle [::ftp::Open $host $user $passwd]
if {$handle < 0} {
error "Connection refused!"
return 0
}