欢迎光临散文网 会员登陆 & 注册

TCP实现文件传输的代码

2020-04-19 15:52 作者:小垃圾kiki  | 我要投稿
package cn.jd.tcp;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

/*
 * 上传文件
 * 创建客户端
 * 1.使用Socket创建客户端(这里实际上就是和服务器建立连接)
 * 所以需要指定服务器的地址和端口
 * 2.输入输出流操作
 * 3.释放资源
 */
public class FileClient {
    public static void main(String[] args) throws UnknownHostException, IOException {
        System.out.println("------client----------");
        //1.使用Socket创建客户端(这里实际上就是和服务器建立连接)
        Socket client=new Socket("localhost",8888);
        // 2.文件的拷贝   文件上传到服务器
        InputStream is=new BufferedInputStream(new FileInputStream("src/OIP.jpg"));
        OutputStream os=new BufferedOutputStream(client.getOutputStream());//获取到图片
        byte[]  flush=new byte[1024];
        int len=-1;
        while((len=is.read(flush))!=-1) {
            os.write(flush,0,len);
        }
        os.flush();
        //3.释放资源
        os.close();
        is.close();
        client.close();
    }

}

package cn.jd.tcp;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*
 * 存储文件
 * 创建服务器
 * 1.指定端口:使用ServerSocket创建服务器
 * 2.阻塞式的等待连接
 * 3.输入输出流操作
 * 4.释放资源
 */
public class FileServer {
    public static void main(String[] args) throws IOException {
        System.out.println("------server----------");
        //1.指定端口:使用ServerSocket创建服务器
        ServerSocket server=new ServerSocket(8888);
        //2.阻塞式等待连接accept
        Socket client=server.accept();//一次accept就是一个连接
        System.out.println("一个客户端建立了连接");
        //3.操作:文件拷贝   服务器将文件存储到本地
        InputStream is=new BufferedInputStream(client.getInputStream());
        OutputStream os=new BufferedOutputStream(new FileOutputStream("src/tcp.jpg"));
        byte[]  flush=new byte[1024];
        int len=-1;
        while((len=is.read(flush))!=-1) {
            os.write(flush,0,len);
        }
        os.flush();
        //4.释放资源
        os.close();
        is.close();
        client.close();
        server.close();
    }
    
}

TCP实现文件传输的代码的评论 (共 条)

分享到微博请遵守国家法律