• java socket 发送文件


    客户端:

    package tt;
    
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.net.InetSocketAddress;
    import java.net.Socket;
    
    public class ClientTcpSend {
    
        public static void main(String[] args) {
            int length = 0;
            byte[] sendByte = null;
            Socket socket = null;
            DataOutputStream dout = null;
            FileInputStream fin = null;
            try {
              try {
                socket = new Socket();
                socket.connect(new InetSocketAddress("127.0.0.1", 33456),10 * 1000);
                dout = new DataOutputStream(socket.getOutputStream());
                File file = new File("E:\TU\DSCF0320.JPG");
                fin = new FileInputStream(file);
                sendByte = new byte[1024];
                dout.writeUTF(file.getName());
                while((length = fin.read(sendByte, 0, sendByte.length))>0){
                    dout.write(sendByte,0,length);
                    dout.flush();
                }
                } catch (Exception e) {
    
                } finally{
                    if (dout != null)
                        dout.close();
                    if (fin != null)
                        fin.close();
                    if (socket != null)
                        socket.close();
            }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }

    服务端:

    package test;
    
    import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class ServerTcpListener implements Runnable {
    
        @Override
        public void run() {
    
        }
    
        public static void main(String[] args) {
            try {
                final ServerSocket server = new ServerSocket(33456);
                Thread th = new Thread(new Runnable() {
    
                    @Override
                    public void run() {
                        while (true) {
                            try {
                               System.out.println("开始监听。。。");
                               Socket socket = server.accept();
                               System.out.println("有链接");
                               receiveFile(socket);
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
    
                    }
    
                });
                th.run();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    
        public static void receiveFile(Socket socket) throws IOException {
            byte[] inputByte = null;
            int length = 0;
            DataInputStream din = null;
            FileOutputStream fout = null;
            try {
                din = new DataInputStream(socket.getInputStream());
                
                fout = new FileOutputStream(new File("E:\"+din.readUTF()));
                inputByte = new byte[1024];
                System.out.println("开始接收数据...");
                while (true) {
                    if (din != null) {
                        length = din.read(inputByte, 0, inputByte.length);
                    }
                    if (length == -1) {
                        break;
                    }
                    System.out.println(length);
                    fout.write(inputByte, 0, length);
                    fout.flush();
                }
                System.out.println("完成接收");
            } catch (Exception ex) {
                ex.printStackTrace();
            } finally {
                if (fout != null)
                    fout.close();
                if (din != null)
                    din.close();
                if (socket != null)
                    socket.close();
            }
        }
    
    }
  • 相关阅读:
    python os.open()和open()
    巨坑:浏览器在短时间内对于同一个请求的处理,会先等待上一个请求完成后,再处理下一个请求,导致在测试异步时误导代码有问题。
    写在开始
    租房小记
    小聚随笔
    由游戏想。(补发)
    对于devOps的一些理解(补发)
    写在2020-01-30(补发)
    杂谈
    如何对抗无意识状态(补发)
  • 原文地址:https://www.cnblogs.com/feiyun126/p/3921466.html
Copyright © 2020-2023  润新知