簡單文件傳送代碼

簡單文件傳送代碼
loveofgod 原創   更新:2006-07-29 02:59:30  版本: 1.0   

/*************************************** Server ****************************************
****************************** Author: Gong haiping 2006.7.29 *************************/
import java.io.*;
import java.net.*;

public class Server
{
   static final int size = 10240;
   static String usrDir = System.getProperty("user.dir");
   static String DiskInfoXML = usrDir + "disk_info.xml";

   public static void main(String argv[])
   {
       DatagramSocket sd = null;
       DatagramPacket packet = null;
  String diskRequest;
       
       try
       {
           sd = new DatagramSocket(7777); //建立socket連接
        System.out.println("Server Started ...");
    while (true) //一直監聽
           {
               byte[] buffer = new byte[size]; 
               packet = new DatagramPacket(buffer, size);
      sd.receive(packet);
      byte[] data = packet.getData(); 
            int port = packet.getPort();
               int len = packet.getLength();
               InetAddress address = packet.getAddress();
               diskRequest = new String(buffer); //打印獲取內容
      System.out.println("diskRequest = /n" + diskRequest); 
      FileOutputStream fout=new FileOutputStream(DiskInfoXML);
               fout.write(buffer,0,len); //寫進文件
               fout.close();
               System.out.println(len+" bytes received");
        }
       }
       catch (SocketException e)
       {
           System.out.println(e.toString());
       }
       catch (IOException e)
       {
           System.out.println(e.toString());
       }
   }
}

/************************************** Client ****************************************
****************************** Author: Gong haiping 2006.7.29 ************************/
import java.io.*;
import java.net.*;

public class Client
{
   public static void main(String argv[])
   {
       try
       {
           int bufferSize = 1024;
           String remoteHost="192.168.208.138";
           int remotePort=7777;
           String usrDir = System.getProperty("user.dir");
    String diskInfoXML = usrDir + "disk_info.xml";
    File f=new File(diskInfoXML);
    FileInputStream fr = new FileInputStream(f); 
    BufferedInputStream br = new BufferedInputStream(fr); 
    Long l=Long.valueOf(f.length());
    int len=l.intValue(); //獲取文件內容長度
    byte[] buffer = new byte[len];
    br.read(buffer,0,len);
    for(int i=0;i<buffer.length;i++){   //打印文件內容
      System.out.print((char)buffer);
    }
    Socket sd = new Socket(remoteHost, remotePort,false);
    InputStream in = sd.getInputStream();
           OutputStream out = sd.getOutputStream();
    out.write(buffer,0,len);
           out.flush();
       }
       catch (IOException e)
       {
           System.out.println(e.toString());
       }
       System.out.println("Send OK ...");
   }
}
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章