Java语言实验报告
计科1003 姓名:李超学号:20**********
实验环境:普通PC机,Win7 系统,eclipse集成开发环境
实验目的:了解ftp协议,掌握网络编程的基本方法,掌握如何通过套接字实现服务器与客户端的信息交流,同时掌握网络上如何利用输入输出流进行文件的传输。
实验内容:在客户端通过输入ls可以看到服务器工作目录下的文件目录,cd命令改变工作目录,get命令下载服务器端的文件,put向服务器上次文件
实验步骤:
打开eclipse集成开发环境,先创建一个FtpServer项目,再添加一个FtpServer类,然后对客户端请求实现功能函数。
创建FtpClient项目,再添加一个FtpClient类,然后编写功能函数,对服务器发出请求,并对服务器的消息作出反应。
调试,编译,运行
实验总结:本次实验掌握输入与输出流的使用,并且掌握了网络上ftp文件传输协议的具体类容,对服务器/客户端架构有了一定的了解,对java语言的了解更进一层。
实验感悟:编程语言的学习重在运用,通过此次实现,对java语言的基本格式,基本语法有了一定的了解,并且网络资源与图书馆资源十分丰富,我们要善于自主学习,发现问题要学会自己解决,同时要养成阅读代码的好习惯,当将一段代码真正读懂时,自己也在进步。本次实验,我从根本不知道如何动手,到最后将此次实验做完,自己能力得到了很大提升,感悟最深的还是实践才是真理。
附:代码
/*使用说明:
在客户端输入help获取帮助信息
在客户端输入get ,将服务器端工作目录下得文件下载到客户端工作目录下
在客户端输入put ,将客户端的工作目录下的文件上传到服务器的工作目录
在客户端输入ls可以得到服务器工作目录下得所有文件
在客户端输入cd 路径名,可以改变服务器端的工作目录
在客户端输入quit,断开与服务器的连接并退出
*/
/*---------------------------服务器端程序-------------------------*/
import .*;
import .*;
public class FtpServer
{
public static void main(String[] args) throws IOException
{
ServerSocket ss = new ServerSocket(7777);
DataInputStream dis;
Socket socket;
while(true)
{
socket = ();
dis = new DataInputStream(());
(() + " has connected.");
Thread thread = new Thread(new HandleClient(socket)); // create a new thread to handle the request from the client
();
}
}
}
class HandleClient implements Runnable
{
Socket socket = null;
String WD = "."; // set the initial working directory
HandleClient(Socket socket)
{
= socket;
}
public void run()
{
= new File("").getAbsolutePath(); // convert "." to absolute path
int cmdNum = -1; // command number is the index of <String[] cmdList> in <class FTPClient>
DataInputStream dis;
try
{
dis = new DataInputStream(());
mark:
while(cmdNum!=5)
{
try
{
cmdNum = ();
}
catch(IOException e)
{
FTP实现文件传输 来自淘豆网m.daumloan.com转载请标明出处.