Internet telnet,ftp命令

 

 

telnet,ftp命令

 

apache的commons-net.jar包中对telnet,ftp,pop3,smtp等协议进行了封装。使用telnet,ftp,pop3,smtp等协议,有一套编程接口socket来应对这些协议。同时可以查看commons-net.jar的源码,发现每个协议的实现类,都继承了SocketClient,依靠socket来处理。所以telnet,ftp,pop3,smtp等协议的操作都是基于socket的,just as http is based on soket。可以这么理解,协议的连接都是使用的socket去连接,只是操作有不同的限定而已。

  闲扯一下:回到socket的问题上,socket属于网络协议层的哪一层?socket 应该算不上是个协议,socket只是网络编程的一个api套件,是一个接口,实际对应应该是应用层与传输层间的一个抽象层。网络分层如下图:

Internet telnet,ftp命令_第1张图片

 

回到主题上:telnet,和ftp命令

 

这两个命令分别可以远程对系统进行telnet登陆和ftp登陆,两种登陆使用的不同的协议,分别属于两种不同的网络服务。

telnet:

telnet则属于远程登陆服务,也就是说可以登陆到远程系统上,并获得一个解释器权限,拥有解释器就意味着拥有了一定的权限,这种权限可能是基本的文件操作、也可能是可以控制系统的管理员权限。

实际中的例子:如web系统要向应用系统传输一串指令,应用系统接到这串指令后可以进行解析,然后做应该做的业务处理。

 

 TelnetClient tc = new org.apache.commons.net.telnet.TelnetClient();
  tc.connect(host, port);  
  PrintStream out = new PrintStream(tc.getOutputStream()); 
  out.println(command); //;
  out.flush(); // 应用系统监听相应的port就可以了。
  

ftp:

ftp是远程文件共享服务,也就是说学习者可以将自己的资料上传、下载,但是它并没有过多的权利,无法在远程电脑上执行上传的文件。简单实践例子。

 

FTPClient ftp = new FTPClient();
ftp.connect(serverIP, serverPort);
ftp.login(username, pwd);
cdOK = ftp.changeWorkingDirectory(remotePath);// 针对ftp协议的特殊借口,遵守一定的规范,而telnet规范是不会有这种操作的。
ftp.putFile("D:/20100902.txt", "20100902.txt");// 将本地文件传到serverIP的remotePath目录下,并且命名:20100902.txt
ftp.disconnect();

 

 

————————————————————————————————————————————————————————————————————————

 

cmd下

-----------------------------

telnet  xxx.xxx.xxx.xxx 28010

-----------------------------

ftp

open xxxx.xxx.xxx.xxx 21

quit

------------------------------

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(编程,应用服务器,socket,网络应用,网络协议)