Home  >  Article  >  Java  >  How does Java network programming TCP implement file upload function?

How does Java network programming TCP implement file upload function?

WBOY
WBOYforward
2023-04-29 17:19:07835browse

Client:

package com.kuang.lesson02;

import java.io.*;
import java.net.InetAddress;
import java.net.Socket;

//客户端
public class TcpClientDemo2 {
    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("sendFile.jpg"));
        //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();
    }
}

Server:

package com.kuang.lesson02;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

//服务端
public class TcpServerDemo02 {
    public static void main(String[] args) throws Exception {
        //1、创建服务
        ServerSocket serverSocket = new ServerSocket(9000);
        //2、监听客户端的连接
        //阻塞式监听,会一直等待客户端连接
        Socket socket = serverSocket.accept();
        //3、获取输入流
        InputStream is = socket.getInputStream();
        //4、文件输出
        FileOutputStream fos = new FileOutputStream(new File("receive.jpg"));
        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();
        is.close();
        socket.close();
        serverSocket.close();
    }

}

Running results:

1. First, you can find that there is only the file sendFile.jsp

to be uploaded in the directory.

How does Java network programming TCP implement file upload function?

2. Run the server and create the service. You can find that it has been running

How does Java network programming TCP implement file upload function?

##3. Run the client and upload the file. You can find that there is an additional file receive.jpg in the directory that was uploaded to the server, and at the same time, the message sent by the server was received.

How does Java network programming TCP implement file upload function?

How does Java network programming TCP implement file upload function?

4. Open the two files and you will find the same

How does Java network programming TCP implement file upload function?

How does Java network programming TCP implement file upload function?

The above is the detailed content of How does Java network programming TCP implement file upload function?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete