JAVA实现tftp服务端(一)

作者在 2007-05-03 20:21:00 发布以下内容

这几天看了一下tftp协议,非常简单,这个学期选修的JAVA,
想趁这个机会练习一下,写一个tftp server的,刚刚把demo完成了,
用windows2003的tftp客户端测试过了,也用我的ADSL (嵌入式linux)里面的tftp测试过,demo版本还是挺好的,至少可以用 。。。
=================================================

源代码可以在这里下载: UploadFiles/2007-5/53552715.zip

=================================================

因为tftp协议本身就很简单,所以我的代码就用了三个类文件,
Main.java --> 这个是启动代码,这个demo版本中,
                     他只是建立一个ServerAgent的对象,然后启动这个对象
tftpServerAgent.java --> 这是Server,它一直监听UDP Port 69,
                                     来了新的连接,它就创建一个ClientAgent,
                                     自己继续等待。
tftpClientAgent.java --> 这是与ftp客户端通信的类,它处理RRQ和WRQ
                                    请求。
这两个Agent都继承了Thread,因为我想在以后的版本中加入Server的管理功能。

============================================
主要代码:
=================================

Main.java
===========================================
public class Main {
   
    /** Creates a new instance of Main */
    public Main() {
    }
    
    public static void main(String[] args) throws Exception {
        // TODO code application logic here
        tftpServerAgent tftp_srv = new tftpServerAgent();
        tftp_srv.setDaemon(true);
        tftp_srv.start();
       
        tftp_srv.join();    //暂时先这么处理吧
    }
   
}

=======================================

tftpServerAgent.java
===========================================
public class tftpServerAgent extends Thread {
    
    //over the parent's run methord
    public void run() {
        try {
            DatagramSocket tftpd = new DatagramSocket(69);  //tftp server socket
            byte[] buf = new byte[516]; //a buffer for UDP packet
            DatagramPacket dp = new DatagramPacket(buf, 516);   //a UDP packet

            DataInputStream din = null;
            tftpClientAgent newClient = null;
            short tftp_opcode = 0;  //opcode: the 2 bytes in th

JAVA | 阅读 4653 次
文章评论,共0条
游客请输入验证码