zoukankan      html  css  js  c++  java
  • socket的简单运用01上传下载文件

    pc机的远程主机程序

    send.java

    import java.awt.image.DataBuffer;
    import java.awt.image.DataBufferByte;
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.ServerSocket;
    import java.net.Socket;

    /**
    * filename : send.java
    * company : **** Limited (android) 2012-2015
    * compiler : eclipse 3.7.1
    * remark : TODO
    * created : 2012-3-5 weeds
    * changed : 后来者居下
    */

    /**
    * filename : TODO
    */
    public class send {

    /**
    *
    @param args
    */
    static File fname;
    static int port=8888;
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    try {
    readFile("d.txt");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    public static void SendFile(String fileName)
    {
    fname=new File(fileName);
    try {
    fname.createNewFile();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    public static void readFile(String fileName) throws IOException
    {
    Socket cs=null;
    try{
    System.out.println("正在等待连接...");
    ServerSocket ss=new ServerSocket(port);
    while(true){
    String filePath="D:\\yc.rar";
    File fi=new File(filePath);
    System.out.println("文件长度是:"+(int)fi.length());
    cs=ss.accept();
    System.out.println("建立socket链接");
    DataInputStream dis=new DataInputStream(new BufferedInputStream(cs.getInputStream()));
    dis.readByte();
    DataInputStream fdata=new DataInputStream(new BufferedInputStream(new FileInputStream(filePath)));
    DataOutputStream ps=new DataOutputStream(cs.getOutputStream());
    ps.writeUTF(fi.getName());
    ps.flush();
    ps.writeLong((long)fi.length());
    ps.flush();
    byte[] b=new byte[102400];
    while(true){
    int read=0;
    if(fdata!=null){
    read=fdata.read(b);

    }
    if(read==-1){
    return ;
    }
    ps.write(b, 0, read);
    ps.flush();
    fdata.close();

    dis.close();
    cs.close();
    ss.close();
    }
    }

    }catch (Exception e) {
    // TODO: handle exception

    }
    }






    }
  • 相关阅读:
    Android Studio开发JNIproject
    POJ 3006 Dirichlet's Theorem on Arithmetic Progressions 快筛质数
    ZooKeeper是什么?
    android学习记录(十三)Task 和 Activity 回退栈操作。
    Java程序员的日常—— IOUtils总结
    sql基础知识:分页+排序
    Elasticsearch推荐插件篇(head,sense,marvel)
    sql基础知识:日期的常用用法
    [大数据之Spark]——Actions算子操作入门实例
    [大数据之Spark]——Transformations转换入门经典实例
  • 原文地址:https://www.cnblogs.com/weeds/p/2344849.html
Copyright © 2011-2022 走看看