文件上传

2021-05-29 17:02

阅读:717

标签:comm   def   exp   socket   operator   byte   tde   you   new   

文件上传

服务器

package com.shushu.net;
?
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
?
public class TcpServerDemo02 {
   public static void main(String[] args) throws IOException {
       //1.创建服务
       ServerSocket serverSocket = new ServerSocket(9000);
       //2.监听客服端的连接
       Socket socket = serverSocket.accept();//阻塞式监听,会一直等待客户端连接
       //3.获取输入流
       InputStream is = socket.getInputStream();
?
       //4.文件输出
       FileOutputStream fos = new FileOutputStream(new File("receive.png"));
       byte[] buffer = new byte[1024];
       int len;
       while ((len=is.read(buffer))!=-1){
           fos.write(buffer,0,len);
      }
       //通知客户端接收完毕
       OutputStream os = socket.getOutputStream();
       os.write("接收完毕!".getBytes());
?
       //5.关闭资源
       fos.close();
       socket.close();
       serverSocket.close();
       is.close();
  }
}

客户端

package com.shushu.net;
?
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
?
public class TcpClientDemo02 {
   public static void main(String[] args) throws Exception {
       //1.创建一个Socket连接
       Socket socket = new Socket(InetAddress.getByName("127.0.0.1"),9000);
       //2.创建一个输出流
       OutputStream os = socket.getOutputStream();
       //3.文件流
       FileInputStream fis = new FileInputStream(new File("zhuomina.png"));
       //4.写出文件
       byte[] buffer = new byte[1024];
       int len;
       while ((len=fis.read(buffer))!=-1){
           os.write(buffer,0,len);
      }
       //通知服务器我已经传输完了
       socket.shutdownOutput();//我已经传输完了!
?
       //确定服务器接收完毕,才能断开连接
       InputStream inputStream = socket.getInputStream();
       //String byte[]
       ByteArrayOutputStream baos = new ByteArrayOutputStream();
?
       byte[] buffer2 = new byte[1024];
       int len2;
       while ((len2=inputStream.read(buffer2))!=-1){
           baos.write(buffer2,0,len2);
      }
       System.out.println(baos.toString());
       //5.关闭资源
       fis.close();
       os.close();
       socket.close();
       baos.close();
       inputStream.close();
  }
}

 

 

文件上传

标签:comm   def   exp   socket   operator   byte   tde   you   new   

原文地址:https://www.cnblogs.com/changhanbing/p/14719295.html


评论


亲,登录后才可以留言!