java se TCP上传文件

来源:互联网 发布:java的输入输出流 编辑:程序博客网 时间:2024/06/05 03:53

注意写入文件的时候一定要刷新缓冲区

//客户端

public static void main(String[] args) throws UnknownHostException, IOException {

        // TODO Auto-generated method stub
        //1.创建TCP的socket
        Socket s=new Socket("192.168.0.109", 15000);
        //2.文件读取流
        BufferedReader br=new BufferedReader(new FileReader("file.txt"));
        //3.socket输出流
        PrintWriter pwout=new PrintWriter(s.getOutputStream(),true);
        String content=null;
        while((content=br.readLine())!=null)
        {
            pwout.println(content);
        }
        //4.告诉服务端输出完成
        s.shutdownOutput();
        //5.socket输入流
        BufferedReader brin=new BufferedReader(new InputStreamReader(s.getInputStream()));
        String contentback=null;
        while((contentback=brin.readLine())!=null)
        {
            System.out.println(contentback);
        }
        //6.关闭
        s.close();
        br.close();

    }

//服务器端

public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        //1.创建ServerSocket
        ServerSocket ss=new ServerSocket(15000);
        //2.得到客户端的socket
        Socket s=ss.accept();
        //3.读取socket流
        BufferedReader brin=new BufferedReader(new InputStreamReader(s.getInputStream()));
        //4.写文件输出流
        BufferedWriter bw=new BufferedWriter(new FileWriter("server.txt"));
        String content=null;
        while((content=brin.readLine())!=null)
        {
            bw.write(content);
            bw.flush();
        }
        //5.sockt输出流
        PrintWriter pwout=new PrintWriter(s.getOutputStream(), true);
        pwout.println("上传成功");
        ss.close();
        s.close();
        bw.close();
    }

原创粉丝点击