zoukankan      html  css  js  c++  java
  • TCP通信(上传文件)

    package demo04;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    
    public class TCPclient {
        public static void main(String[] args) throws IOException {
            //1.创建socket对象,连接服务器
            Socket s =new Socket("127.0.0.1", 8765);
            //2.通过套接字获取输出流
            OutputStream out =s.getOutputStream();
            //3.获取数据源
            FileInputStream fis =new FileInputStream("D:\test\aaa.png");
            //4.读数据
            int len =0;
            byte [] b =new byte [1024];
            while((len =fis.read(b))!=-1){
                //写入目的地
                out.write(b,0,len);
            }
            s.shutdownOutput();
            //接受服务器回复
            InputStream in =s.getInputStream();
            len =in.read(b);
            System.out.println(new String(b ,0,len));
            //释放资源
            fis.close();
            s.close();
        }
    }
    package demo04;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Random;
    
    import org.xml.sax.InputSource;
    
    public class TCPserver{
        public static void main(String[] args) throws IOException {
            //1.创建服务器套接字绑定接口
            ServerSocket ser =new ServerSocket(8765);
            //2.接受套接字对象
            Socket s =ser.accept();
            //3.获取输入流
            InputStream in =s.getInputStream();
            //4.获取文件夹,如果不存在就创建
            File f =new File("f:\aaa");
            if(!f.exists()){
                f.mkdirs();
            }
            //5.创建文件输出流
            String filename ="oracle"+System.currentTimeMillis()+new Random().nextInt(99999)+".png";
            FileOutputStream fos =new FileOutputStream(f+File.separator+filename);
            //6.写入数据
            byte  [] b =new byte [1024];
            int len =0;
            while((len =in.read(b))!=-1){
                fos.write(b,0,len);
            }
            //服务器给客服端回复(上传成功)
            OutputStream out=s.getOutputStream();
            out.write("上传成功".getBytes());
            //释放资源
            fos.close();
            s.close();
            ser.close();
        }
        
    }
  • 相关阅读:
    IO之同步、异步、阻塞、非阻塞 (2)
    IO之同步、异步、阻塞、非阻塞
    Syncthing源码解析
    Syncthing源码解析
    在Gogland里对GO程序进行单元测试!
    GO学习笔记
    GO学习笔记
    GO学习笔记
    GO学习笔记
    GO学习笔记
  • 原文地址:https://www.cnblogs.com/Jxliu/p/9253425.html
Copyright © 2011-2022 走看看