java tftp_JAVA实现tftp服务端(一)
這幾天看了一下tftp協議,非常簡單,這個學期選修的JAVA,
想趁這個機會練習一下,寫一個tftp server的,剛剛把demo完成了,
用windows2003的tftp客戶端測試過了,也用我的ADSL (嵌入式linux)里面的tftp測試過,demo版本還是挺好的,至少可以用 。。。
=================================================
=================================================
因為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 tftp_JAVA实现tftp服务端(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TFTP工具使用介绍
- 下一篇: tftp使用