日志文章

2019-12-28 aflfte2011

TCP实现上传文件实例

服务器接收端
package com.aflfte.tcp;
/**
 * 存储文件
 * @author root
 *
 */

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class FileServer {
    public static void main(String[] args) throws Exception {
        System.out.println("----Server--------");
        ServerSocket server=new ServerSocket(8888);
        Socket client =server.accept();
        System.out.println("一个客户端建立了链接");
        InputStream is=new BufferedInputStream(client.getInputStream());
        OutputStream os=new BufferedOutputStream(new FileOutputStream("src/122.png"));
        byte[] flush=new byte[1024];
        int len=-1;
        while((len=is.read(flush))!=-1) {
            os.write(flush,0,len);
        }
        os.flush();
        os.close();
        is.close();
        client.close();
        server.close();
    }
}

客户发送端
package com.aflfte.tcp;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

/**
 * 文件上传
 * @author root
 *
 */
public class FileClient {
    public static void main(String[] args) throws Exception {
        System.out.println("-----Client-----");
        Socket client=new Socket("localhost",8888);
        InputStream is=new BufferedInputStream(new FileInputStream("/root/文档/IO.png"));
        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();
        os.close();
        is.close();
        client.close();
    }
}


« TCP实现多用户登录 | TCP登录模拟»