简单文件传送代码

简单文件传送代码
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 ...");
   }
}
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值