zoukankan      html  css  js  c++  java
  • 使用TCP协议写一个可以上传文件的服务器和客户端。

    public class Test9 
    {  
              
        public static void main(String[] args) 
        {}  
      
    }  
    //客户端  
    class Client
    {  
          public static void main(String[] args) throws Exception 
          {  
          //建立Socket服务  
          Socket fileLoaderSocket = new Socket("168.168.168.94", 10005);  
          //从客户端本地读取文件,并写入socket的输出流中  
          OutputStream out = fileLoaderSocket.getOutputStream();  
          //实例化对象fileReader
          InputStream fileRead = new FileInputStream("G:\2.mp3");  
          //建立数组
          byte[] buf = new byte[1024];  
          int len = 0; 
          //判断是否读到文件末尾
          while((len=fileRead.read(buf)) != -1)
              {  
               out.write(buf, 0, len);  
              }  
          //告诉服务端,文件已传输完毕  
          fileLoaderSocket.shutdownOutput();  
          //获取从服务端反馈的信息  
          BufferedReader in = new BufferedReader(new InputStreamReader(fileLoaderSocket.getInputStream()));  
          String serverBack = in.readLine();  
          System.out.println(serverBack);    
          //资源关闭  
          fileLoaderSocket.close();  
          fileRead.close();  
        }  
    }  

    //服务端  
    class Server 
    {  
         public static void main(String[] args) throws Exception 
         {  
          //建立服务端Socket  
          ServerSocket ss = new ServerSocket(10005);  
          //接收客户端Socket  
          Socket fileLoaderSocket = ss.accept();  
            
          //打印连接信息  
          String ip = fileLoaderSocket.getInetAddress().getHostAddress();  
          System.out.println(ip + "...conncected");  
            
          //接收文件,并保存  
          InputStream in = fileLoaderSocket.getInputStream();  
          //实例化对象fileSave
          OutputStream fileSave = new FileOutputStream("E:\3.mp3");  
          //建立数组buf
          byte[] buf = new byte[1024];  
          int len = 0;  
          //判断是否读到文件末尾
           while((len=in.read(buf)) != -1) 
             {  
              fileSave.write(buf, 0, len);  
              //刷新
              fileSave.flush();  
             }  
          //返回文件复制情况信息  
          BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fileLoaderSocket.getOutputStream()));  
          out.write("文件上传成功");  
          //刷新
          out.flush();  
          //资源关闭  
          ss.close();  
          fileLoaderSocket.close();  
          fileSave.close();  
        }  
    }  
  • 相关阅读:
    MongoDB集群运维笔记
    第十八节:SSM搭建之分层、聚合、继承、属性、版本管理、资源配置、多环境、跳过测试
    第十六节:SpringMvc拦截器、全局异常处理、RestFul风格编程、文件上传
    Java认证授权框架Spring Security介绍
    干货:RabbitMQ消息队列基本原理介绍
    微服务开发框架 SpringCloud
    Pygame实战项目:用300行代码写出贪吃蛇小游戏
    内外盘
    [转贴]太有用了,留存!Kaggle数据下载
    shell执行报错: bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory的解决方法
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258571.html
Copyright © 2011-2022 走看看