zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    
    }
  • 相关阅读:
    【Swift】图文混排,ios开发中在textfield或textView中插入图片
    ios开发-指纹识别
    ios开发-程序压后台后,悄悄的抓取数据~~
    setNeedDisplay和setNeedsLayout
    rangeOfString用法
    NSThread的使用
    UIActivityIndicatorView的详细使用
    iOS高斯模糊处理
    HIbernate学习笔记(一) 了解hibernate并搭建环境建立第一个hello world程序
    Hibernate4搭建Log4J日志管理(附Log4j.properties配置详解)
  • 原文地址:https://www.cnblogs.com/feiyun126/p/3921466.html
Copyright © 2011-2022 走看看