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

服务端

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 基于tcp协议实现文件上传的详细内容,更多关于Java 文件上传的资料请关注我们其它相关文章!

时间: 2020-11-21

简单操作实现Java jsp servlet文件上传过程解析

实现文件上传的方式 1.进入http://commons.apache.org/proper/commons-fileupload/using.html 2.点击用户指南 3.对着用户指南一步步复制粘贴,并把代码撸成自己想要的样子 补充:记得要将commons-io-2.4.jar和commons-fileupload-1.2.2.jar这两个包放到编译器里面 现成的代码 JSP 前端页面 <%-- Created by IntelliJ IDEA. User: Administrator Da

java实现文件上传下载

本文实例为大家分享了java实现文件上传下载的具体代码,供大家参考,具体内容如下 一.上传 1.前端: <form method="post" action="FileUpload" enctype="multipart/form-data"> <input type="file" name="uploadFile" /> <br/> <input type=&qu

java 文件上传到读取文件内容的实例

1.下载文件,将文件保存到本地.(只试用excel): 2.对文件的标题进行检验: 3.获取导入的批次(取一个表的一个值,加1): 4.循环获取文件某一个行,某一列的值,set到对象中: 5.检验值的合法性: 6.循环保存到对象中. 7.用map将错误的信息和正确的信息,JSONObject.fromObject(map): public String uploadFile() throws Exception { logger.info("开始导入规则文件:" + fileInput

Java8实现FTP及SFTP文件上传下载

有网上的代码,也有自己的理解,代码备份 一般连接windows服务器使用FTP,连接linux服务器使用SFTP.linux都是通过SFTP上传文件,不需要额外安装,非要使用FTP的话,还得安装FTP服务(虽然刚开始我就是这么干的). 另外就是jdk1.8和jdk1.7之前的方法有些不同,网上有很多jdk1.7之前的介绍,本篇是jdk1.8的 添加依赖Jsch-0.1.54.jar <!-- https://mvnrepository.com/artifact/com.jcraft/jsch -

java实现文件上传、下载、图片预览

这篇文章主要介绍了java实现文件上传.下载.图片预览,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 多文件保存到本地: @ResponseBody @RequestMapping(value = "/uploadApp",produces = { "application/json;charset=UTF-8" },method= RequestMethod.POST) public String uploadA

java实现文件上传下载至ftp服务器

以前做的一个项目,用到了文件上传下载至ftp服务器,现在对其进行一下复习,比较简单,一下就能看明白. 环境:首先,先安装ftp服务器,我是在win8本地用IIS配置的, 百度一下就可以找到安装文档. 1.在你的项目目录下建立ftp配置文件,目录如下图 01 ftpconfig.properties: ftpIp=10.73.222.29 ftpPort=21 ftpUser=WP ftpPwd=04143114wp ftpRemotePath=d://share 02 读取ftpconfig.p

Java文件上传与文件下载实现方法详解

本文实例讲述了Java文件上传与文件下载实现方法.分享给大家供大家参考,具体如下: Java文件上传 数据上传是客户端向服务器端上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传的一种特例,指客户端向服务器上传文件.即将保存在客户端的文件上传一个副本到服务器,并保存在服务器中. 1.上传表单要求 文件上传要求客户端提交特殊的请求--multipart请求,即包含多部分数据的请求.必须将<form/>标签的enctype属性值设为"multipart/form-d

java文件上传下载代码实例

本文实例为大家分享了java文件上传下载的具体代码,供大家参考,具体内容如下 文件上传 @RequestMapping(value="/uploadFile",method=RequestMethod.POST) public ResultObject uploadFiles(@RequestParam("file")MultipartFile file,HttpServletRequest request){ ResultObject rs = null;//返回

JavaWeb如何实现本地文件上传功能

这篇文章主要介绍了JavaWeb如何实现本地文件上传功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Web中的文件上传主要是分为两步 在Web页面中设置一个上传文件的选项,一般是通过<form><input>两个标签实现 在Servlet类中读取到上传的文件,并保存到服务器中 记录实现步骤前先撸一遍需要注意的几个地方,以及两个jar包和类的介绍 需要注意的地方 <input>输入项的type属性设置为'file',

Java实现一个简单的文件上传案例示例代码

Java实现一个简单的文件上传案例 实现流程: 1.客户端从硬盘读取文件数据到程序中 2.客户端输出流,写出文件到服务端 3.服务端输出流,读取文件数据到服务端中 4.输出流,写出文件数据到服务器硬盘中 下面上代码 上传单个文件 服务器端 package FileUpload; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.Serve

java 网络编程之TCP通信和简单的文件上传功能实例

TCP通信需要明确的几点: tcp通信是面向连接的,需要先启动服务端,再启动客户端. 客户端和服务端都要创建套接字对象,客户端需要指定服务端套接字(ip+port),而服务端必须指定服务端口. Socket client_socket = new Socket("192.168.100.17",8888); //客户端套接字(Socket类的套接字为已连接套接字) ServerSocket listen_socket = new ServerSocket(8888); //服务端套接字

Java网络编程之TCP通信完整代码示例

一.概述 Socket类是Java执行客户端TCP操作的基础类,这个类本身使用代码通过主机操作系统的本地TCP栈进行通信.Socket类的方法会建立和销毁连接,设置各种Socket选项. ServerSocket类是Java执行服务器端操作的基础类,该类运行于服务器,监听入站TCP连接,每个socket服务器监听服务器的某个端口,当远程主机的客户端尝试连接此端口时,服务器就被唤醒,并返回一个表示两台主机之间socket的正常Socket对象. 二.什么是TCP? TCP是一种面向连接的.可靠的.

Java网络编程之TCP程序设计

本文实例为大家分享了Java网络编程TCP程序设计的具体代码,供大家参考,具体内容如下 [1] TCP编程的主要步骤 客户端(client): 1.创建Socket对象,构造方法的形参列表中需要InetAddress类对象和int型值,用来指明对方的IP地址和端口号. 2.通过Socket对象的getOutputStream()方法返回OutputStream抽象类子类的一个对象,用来发送输出流. 3.通过输出流的write方法输出具体的信息. 4.关闭相应的流和Socket对象. 服务端(se

python网络编程之TCP通信实例和socketserver框架使用例子

1.TCP是一种面向连接的可靠地协议,在一方发送数据之前,必须在双方之间建立一个连接,建立的过程需要经过三次握手,通信完成后要拆除连接,需要经过四次握手,这是由TCP的半关闭造成的,一方在完成数据发送后要发送一个FIN来终止这个方向的连接,一个TCP连接在收到一个FIN后仍能发送数据,但应用程序很少这么做,下面是TCP连接建立和拆除的过程: 2.python可以实现TCP服务器和客户端的编程,下面是代码: 服务器端: 复制代码 代码如下: #!/usr/bin/env pythonimport

Python网络编程之TCP与UDP协议套接字用法示例

本文实例讲述了Python网络编程之TCP与UDP协议套接字用法.分享给大家供大家参考,具体如下: TCP协议 服务器端: #!/usr/bin/env python from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) ##创建服务器TCP套接字 tcpSerSoc

Python网络编程之TCP套接字简单用法示例

本文实例讲述了Python网络编程之TCP套接字简单用法.分享给大家供大家参考,具体如下: 上学期学的计算机网络,因为之前还未学习python,而java则一知半解,C写起来又麻烦,所以一直都没有真正实现过TCP套接字编程. 最近学习了python,而用它来写套接字又十分方便简单,所以当然要试一试咯. 下面根据代码来介绍一下最简单的tcp程序,由客户端输入数据,发送给服务器,服务器加上时间后返回给客户端 #!/usr/bin/python 'test TCP server' from socke

Java网络编程之URL+URLconnection使用方法示例

目录 HTTP GET和POST 从URLs到本地文件 在java.net包中包含两个有趣的类:URL类和URLConnection类.这两个类可以用来创建客户端到web服务器(HTTP服务器)的连接.下面是一个简单的代码例子: URL url = new URL("http://jenkov.com"); URLConnection urlConnection = url.openConnection(); InputStream input = urlConnection.getI

Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】

本文实例讲述了Python 网络编程之TCP客户端/服务端功能.分享给大家供大家参考,具体如下: demo.py(TCP客户端): import socket def main(): # 1. 创建tcp的套接字 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2. 链接服务器 # tcp_socket.connect(("192.168.33.11", 7890)) server_ip = input(

Java与WebUploader相结合实现文件上传功能(实例代码)

之前自己写小项目的时候也碰到过文件上传的问题,没有找到很好的解决方案.虽然之前网找各种解决方案的时候也看到过WebUploader,但没有进一步深究.这次稍微深入了解了些,这里也做个小结. 简单的文件和普通数据上传并保存 jsp页面: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE h

python3写的简单本地文件上传服务器实例

python是个很好玩的东西?好吧我随口说的,反正因为各种原因(其实到底是啥我也不知道),简单的学习了下python,然后写了一个上传文件上服务器的小玩具练手. 大概功能是这样: 1.获取本地文件列表(包括文件夹) 2.检查服务器上是否存在,不存在直接上传,存在的话,文件夹无视,文件比较大小,大小不一致则覆盖,最后检查服务器上是否存在本地没有的文件,存在则删除 3.之后增加了忽略列表,忽略文件类型 4.然后增加了重启tomcat,但是这个功能未进行测试 大概就是这个样子,哦了,丢代码丢代码 #!