好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java网络编程TCP实现文件上传功能

本文实例为大家分享了Java网络编程TCP实现文件上传的具体代码,供大家参考,具体内容如下

上一篇 博客 ,用网络编程TCP 实现聊天,这次实现文件上传。

客户端:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

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();

     }

}

服务端:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

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();

     }

 

}

运行结果:

1、首先可以发现目录下只有要上传的文件sendFile.jsp

2、运行服务端,创建服务,可以发现一直在运行

3、运行客户端,文件上传,可以发现目录下多了个上传到服务端的文件receive.jpg,同时接收到了服务端发送来的消息。

4、打开两个文件,可以发现相同

网络编程实现文件上传就简单介绍到这里了!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://blog.csdn.net/weixin_44668898/article/details/107306758

查看更多关于Java网络编程TCP实现文件上传功能的详细内容...

  阅读:10次