{
char *name; 命令的名字
char *help; 命令注解
void (*handler) (int, char **); 命令调用的函数
};
char vhelp[] = "toggle verbose mode";
char thelp[] = "toggle packet tracing";
char chelp[] = "connect to remote tftp";
char qhelp[] = "exit tftp";
char hhelp[] = "print help information";
char shelp[] = "send file";
char rhelp[] = "receive file";
char mhelp[] = "set file transfer mode";
char sthelp[] = "show current status";
char xhelp[] = "set per-packet retransmission timeout";
char ihelp[] = "set total retransmission timeout";
char ashelp[] = "set mode to netascii";
char bnhelp[] = "set mode to octet";
struct cmd cmdtab[] = {
{"connect", chelp, setpeer},
{"mode", mhelp, modecmd},
{"put", shelp, put},
{"get", rhelp, get},
{"quit", qhelp, quit},
{"verbose", vhelp, setverbose},
{"trace", thelp, settrace},
{"status", sthelp, status},
{"binary", bnhelp, setbinary},
{"ascii", ashelp, setascii},
{"rexmt", xhelp, setrexmt},
{"timeout", ihelp, settimeout},
{"?", hhelp, help},
{NULL, NULL, NULL}
};
struct cmd *getcmd (register char *name);
命令的使用
verbose命令会显示详细信息。
trace命令会显示跟踪的信息。
get命令,在服务器端tftpd得到一个文件
put命令,在客户端发送一个文件到服务器端
root@ch-Founder-PC:/usr/sbin# tftp 172.22.24.150
tftp> verbose
Verbose mode on.
tftp> get test
getting from 172.22.24.150:test to test [netascii]
Error code 2: Only absolute filenames allowed
tftp> get /home/ch/tftpboot/test
getting from 172.22.24.150:/home/ch/tftpboot/test to test [netascii]
Received 5 bytes in 0.2 seconds [164 bit/s]
tftp> put netstat /home/ch/tftpboot/netstat
tftp: netstat: No such file or directory
tftp> put /root/netstat /home/ch/tftpboot/netstat
putting /root/netstat to 172.22.24.150:/home/ch/tftpboot/netstat [netascii]
Sent 1289534 bytes in 0.9 seconds [11759518 bit/s]
tftp> trace
Packet tracing on.
tftp> get /home/ch/tftpboot/test
getting from 172.22.24.150:/home/ch/tftpboot/test to test [netascii]
sent RRQ <file=/home/ch/tftpboot/test, mode=netascii>
received DATA <block=1, 5 bytes>
Received 5 bytes in 0.0 seconds [4206 bit/s]
tftp>