• 使用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();  
        }  
    }  
  • 相关阅读:
    BGP的MA网络、自动汇总、聚合
    [转载]CISCO配置HSRP
    BGP选路十种方法总结 用实验详细介绍(副实验拓扑)
    [win技巧] windows 7的上帝模式你用过吗?【相信你没用过!如此方便的的设置】
    CISCO BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)
    执行外部程序
    C#编写COM组件
    在SQL Server 2005上遇到了先删除已运行维护计划后,再删除代理中由其产生的作业时,提示删除失败,如何处理?
    关于存储过程编写的一点总结(转)
    WCF:调用方未由服务器进行身份验证
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258571.html
Copyright © 2020-2023  润新知