zoukankan      html  css  js  c++  java
  • 网络编程(客户端,服务端文件上传下载)

    服务端

    • 可以接收多个客户端请求
    • 使用多线程实现
    import java.io.*;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Server {
        public static void main(String[] args) throws Exception {
            ServerSocket serverSocket = new ServerSocket(8888);
            while (true){
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try{
                            Socket socket = serverSocket.accept();
                            BufferedInputStream bufferedInputStream = new BufferedInputStream(socket.getInputStream());
                            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("/Users/mima000000/Desktop/"+System.currentTimeMillis()+".jpeg"));
                            int len;
                            byte[] bytes = new byte[1024*8];
                            while ((len=bufferedInputStream.read(bytes))!=-1){
                                bufferedOutputStream.write(bytes,0,len);
                            }
                            System.out.println("文件上传成功");
                            OutputStream outputStream = socket.getOutputStream();
                            outputStream.write("上传成功".getBytes());
                            outputStream.close();
                            bufferedOutputStream.close();
                            socket.close();
                        }catch (Exception e){
                            System.out.println(e);
                        }
                        
    
                    }
                }).start();
                
            }
    
    
        }
    }
    
    

    客户端

    import java.io.*;
    import java.net.Socket;
    
    public class Client {
        public static void main(String[] args) throws IOException {
            Socket socket = new Socket("localhost", 8888);
            BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("/Users/mima000000/Desktop/1.jpeg"));
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(socket.getOutputStream());
            int len;
            byte[] temp = new byte[1024];
            while ((len=bufferedInputStream.read(temp))!=-1){
                bufferedOutputStream.write(temp,0,len);
            }
            socket.shutdownOutput(); // 表示通知服务端,写出完毕结束。
            System.out.println("fild upload successful");
            InputStream inputStream = socket.getInputStream();
            byte[] arr = new byte[20];
            inputStream.read(arr);
            System.out.println(new String(arr));
    
            inputStream.close();
            bufferedInputStream.close();
            socket.close();
    
        }
    }
    
    
  • 相关阅读:
    数据库连接池大小
    java的关闭钩子(Shutdown Hook)
    为线程池中的每个线程设置UncaughtExceptionHandler
    java 线程的interrupt和sleep、wait
    中断
    NIO
    VMware 安装 VMware Tools 工具
    php 雪花算法
    python 执行系统文件
    php curl 获取响应头
  • 原文地址:https://www.cnblogs.com/hellosiyu/p/12500983.html
Copyright © 2011-2022 走看看