• Java sending and receiving file (byte[]) over sockets


    
    

    Server

    publicclassServer{/**
     * @param args the command line arguments
     */

    public static void main(String[] args)throwsIOException{
    ServerSocket serverSocket =null;try{ serverSocket =newServerSocket(4444);
    }catch(IOException ex){
    System.out.println("Can't setup server on this port number. ");
    }
    Socket socket =null;
    InputStream is =null;
    FileOutputStream fos =null;
    BufferedOutputStream bos =null;
    int bufferSize =0;try{ socket = serverSocket.accept();}
    catch(IOException ex){
    System.out.println("Can't accept client connection. ");
    }try{ is = socket.getInputStream(); bufferSize = socket.getReceiveBufferSize();
        System.out.println("Buffer size: "+ bufferSize);
    }catch(IOException ex){System.out.println("Can't get socket input stream. ");
    }try{ fos =newFileOutputStream("M:\\test2.xml"); bos =newBufferedOutputStream(fos);
      }catch(FileNotFoundException ex){
        System.out.println("File not found. ");
      }
      byte[] bytes =newbyte[bufferSize];
      int count;
      while((count = is.read(bytes))>0){ bos.write(bytes,0, count);
    } bos.flush(); bos.close(); is.close(); socket.close(); serverSocket.close();}

    }

    and the Client

    publicclassClient{/**
     * @param args the command line arguments
     */

    public static void main(String[] args)throwsIOException{
      Socket socket =null;
      String host ="127.0.0.1"; socket =newSocket(host,4444);
      File file =newFile("M:\\test.xml");// Get the size of the file
      long length = file.length();
      if(length >Integer.MAX_VALUE){
        System.out.println("File is too large.");
      }
      byte[] bytes =newbyte[(int) length];
      FileInputStream fis =newFileInputStream(file);
      BufferedInputStream bis =newBufferedInputStream(fis);
      BufferedOutputStream out =newBufferedOutputStream(socket.getOutputStream());
      int count;
      while((count = bis.read(bytes))>0){ out.write(bytes,0, count);
      } out.flush(); out.close(); fis.close(); bis.close(); socket.close();}

    }

  • 相关阅读:
    JavaWeb核心编程之(四.1)JSP
    一起来说 Vim 语
    你应该知道的基础 Git 命令
    Git 系列(五):三个 Git 图形化工具
    Git 系列(四):在 Git 中进行版本回退
    Git 系列(三):建立你的第一个 Git 仓库
    Git 系列(二):初步了解 Git
    Git 系列(一):什么是 Git
    JavaWeb核心编程之(三.6)HttpServlet
    多线程:子线程执行完成后通知主线程
  • 原文地址:https://www.cnblogs.com/songtzu/p/2932216.html
Copyright © 2020-2023  润新知