Java网络编程实现文件上传

java中使用tcp/ip模拟实现服务器与客户端的聊天对话功能 本篇文章是基于tcp/ip模拟实现正常服务端与客户端的聊天功能 阅读详情

一、文件上传案例的客户端

1、简介

文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据

明确:
    数据源和目的地

2、实现步骤:

    1.创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源
    
    2.创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号
    
    3.使用Socket中的方法getOutputStream,获取网络字节输出流OutputStream对象
    
    4.使用本地字节输入流FileInputStream对象中的方法read,读取本地文件
    
    5.使用网络字节输出流OutputStream对象中的方法write,把读取到的文件上传到服务器
    
    6.使用Socket中的方法getInputStream,获取网络字节输入流InputStream对象
    
    7.使用网络字节输入流InputStream对象中的方法read读取服务回写的数据
    
    8.释放资源(FileInputStream,Socket)

3、代码

//文件上传的客户端
public class Demo03 {
   
   
    public static void main(String[] args) throws IOException {
   
   
        //1.创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源
        FileInputStream fis = new FileInputStream("E:\\11.jpg");
        //2.创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号
        Socket socket = new Socket("127.0.0.1",8888);
        //3.使用Socket中的方法getOutputStream,获取网络字节输出流OutputStream对象
        OutputStream os = socket.getOutputStream();
        //4.使用本地字节输入流FileInputStream对象中的方法read,读取本地文件
        int len = 0;
        byte[
Java利用socket实现客户端和服务器相互通信 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.ServerSocket; import java.util.Scanner; /** * @Author: Mr·Liu ٩(๑>◡<๑)۶ * @Date: 2021/6/23 */ public class ClientSocket { 阅读详情

相关推荐

【Android-网络编程】利用java API实现文件上传功能

本文主要介绍安卓如何进行文件上传,本文的后台来自于:link. 使用场景: 可结合contentprovider,实现从媒体库中获取相册权限,修改头像的功能;也可以用于其他上传文件、上传图片的场景中 实现效果: 实现思路: 利用postman+fiddler获取请求头中的内容,对后台发起相应的get/post请求 主要步骤: 申请网络权限 ...

qq_40716430的博客 852

Java实现服务端与客户端的详解

客户端也是类似的操作,通过PrintWriter向输出流中写入数据,使用BufferedReader读取输入流中的响应数据。客户端使用Socket类创建一个与服务端的连接,并获取输入流和输出流,用于数据的读取和写入。以上是一个简单的服务端和客户端实现的例子。客户端通过创建Socket对象指定服务端的IP地址和端口号,向服务端发送消息并接收服务端的响应。通过以上的代码示例,我们可以实现Java的服务端和客户端之间的通信。需要注意的是,在使用完流和连接后,需要逐个关闭这些资源,以确保资源的释放和避免内存泄漏。

CyberLancer的博客 242

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

在Java中,通过TCP协议可以实现可靠的数据传输,这使得它成为实现文件上传功能的理想选择。在上面的代码中,我们创建了一个客户端的Socket实例,并指定了服务器的IP地址和端口号。然后,我们获取客户端的输出流,并将文件内容写入输出流中。在运行之前,请确保在服务器端和客户端的代码中,将文件的路径修改为实际存在的文件路径。接下来,我们获取客户端的输入流,并将接收的文件写入服务器端的文件中。当客户端程序运行完成后,服务器端程序将接收到客户端上传的文件,并保存在指定的文件路径中。在上面的代码中,我们创建了一个。

PqCybersecurity的博客 191

手把手教你用Arduino搭建惠斯通电桥:从原理到代码实现(附完整电路图)

本文详细介绍了如何利用Arduino搭建惠斯通电桥,从硬件选型、电路设计到代码实现和校准技巧,提供完整的电路图和实用代码示例。特别适合电子爱好者和创客学习高精度电阻测量技术,并扩展应用于应变片测量和温度监测等实际项目。

o4p5q6r7s的博客 401

MAX30102心率血样模块在STM32F103芯片的程序说明

我希望你已经安装好了Keil MDK5这个软件,也安装了M3内核,可以编译一些STM32F103的一些项目下载程序后步骤: 1-按照下图找到IIC.uvprojx并打开(途中唯一绿色那个图标) 2-编译一次 3-确保0错误,0警告,下图所示 4-点击目标选项,然后找到STM32F103C8,再点debug–CMSIS****(我实际用的JTAG,用不了,选择这个CMSIS****即可)下图所示 5-下图所示,看看你的串口找到了没,找到了就点左下角的OK 6-按图上传到开发板 7-MAX30102接线方法

weixin_51357422的博客 5801

【高级-RAG-优化方法】

本文介绍了两种优化RAG(检索增强生成)系统的高级方法。第一部分介绍KnowFlow项目,它采用父子分块技术,将文档分为父分块(800-1500字符)和子分块(200-400字符),通过精确匹配子分块再返回父分块内容来保证搜索精确性和上下文完整性。第二部分探讨Milvus的多种增强技术,包括查询增强(如假设问题生成、回溯提示)、索引增强(自动合并块、分层索引)、检索器增强(句子窗口检索、元数据过滤)、生成器增强(提示压缩、块排序)以及管道增强(自我反省、代理查询路由)。这些方法共同提升了RAG系统的检索效率

weixin_48585108的博客 960

window系统 dlib库安装

1. 安装visual studio 1.1. 安装vs2017或以上版本 1.2. 我们需要安装使用C++的桌面开发,且必须选上用于Cmake的Visual C++工具 1.3. 安装完成后,将D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin 添加到环境变量PATH中 2 下载cmake文件,并添加环境变量 2.1 在c

@bangbang的博客 815

NVIDIA驱动版本太低?手把手教你解决CUDA与PyTorch版本冲突问题

本文针对深度学习开发中常见的NVIDIA驱动版本过低导致的CUDA与PyTorch版本冲突问题,提供了从根源理解到实战解决的完整指南。文章详细解析了驱动、CUDA与PyTorch的依赖关系,并给出了升级驱动、降级PyTorch、使用Conda环境管理及Docker容器化四种核心解决方案,帮助开发者快速诊断并构建稳定的GPU开发工作流。

grpc6streamer的博客 970

第五节_PySide6基本窗口控件_主窗口和标签

本文介绍了PySide6中主窗口和标签控件的使用。主要内容包括: 窗口控件分类: QWidget是基础窗口部件,可作为独立窗口或子部件 QMainWindow提供标准应用程序框架,包含菜单栏、工具栏等 QDialog用于对话框,支持模态交互 主窗口创建: 演示了如何创建QMainWindow子类 实现了窗口居中、设置图标、状态栏等功能 提供了窗口几何信息的获取方法 QLabel标签控件: 继承自QFrame类 用于显示文本或图像 文章通过代码示例详细说明了主窗口的创建和使用方法,包括位置控制、图标设置等常见

su桥木的博客 1022

海洋浮游生物识海洋浮游生物识别系统:基于YOLOv10的显微图像自动检测与UI别系统:基于海洋浮游生物识别系统:基于YOLOv10的显微图像自动检测与UI展示YOLOv10的显微图像自动检测与UI展示

本文介绍了如何利用YOLOv10模型进行海洋浮游生物的自动识别,旨在提高传统显微镜观测的效率与准确性。研究背景强调了浮游生物在海洋生态系统中的重要性,并指出传统方法的局限性。数据集选用WHOI-Plankton,包含70多种浮游生物的20000多张带标签图像。文章详细描述了YOLOv10模型的安装、数据集配置、训练与测试步骤,并提供了基于PyQt5的图形化检测界面代码。结果显示,模型在精度、召回率和mAP@0.5等指标上表现优异,推理速度达到约30 FPS。最后,文章提出了部署建议和未来优化方向,如集成摄像

YOLO 376

复现论文《基于Retinex理论和深度学习的低照度图像增强算法研究》

本研究提出两种基于Retinex理论和深度学习的低照度图像增强算法。第一种算法在HSV色彩空间中进行处理,采用Res2Block和CBAM-Res2block模块增强多尺度特征表示;第二种算法使用多尺度残差U型网络结构。复现代码展示了Res2Block、CBAM注意力机制等核心模块的实现,包括多尺度特征提取、通道和空间注意力机制。实验结果表明,所提算法能有效解决低照度图像存在的亮度低、对比度不足、颜色失真和细节丢失等问题,显著提升图像质量。

max500600的博客 389

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: TCP通信实现聊天
下一篇: Java常见的数据结构(笔记)
不吃辣的IT男
博客等级 码龄7年 6560粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃辣的IT男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值