欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java 基于tcp协议实现文件上传

时间:2023-02-26 08:35:43|栏目:JAVA代码|点击:

服务端

package lesson02;

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

/**
 * 服务端接收文件
 */
public class TcpServerDemo2 {

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

  }

}

客户端

package 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"), 90000);
    //2、创建一个输出流
    OutputStream os = socket.getOutputStream();

    //3、读取文件
    FileInputStream fis = new FileInputStream(new File("toux.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();
    //Sting 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();

  }

}

上一篇:计算机二级考试java软件操作教程 教大家如何学习java

栏    目:JAVA代码

下一篇:Java实现萝卜勇者游戏的示例代码

本文标题:Java 基于tcp协议实现文件上传

本文地址:http://www.codeinn.net/misctech/226487.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有