2023.1.30日学习内容(多线程接收,发送文件)

2023-10-27

1,多线程接收文件

1,线程文件

public Socket socket;

public MyThread(Socket socket) {

this.socket = socket;

}

@Override

public void run() {

try {

String ThreadName = Thread.currentThread().getName();

System.out.println(ThreadName + "正在等待连接");

System.out.println(ThreadName + "连接成功,准备接受文件");

InputStream is = socket.getInputStream();

OutputStream os = new FileOutputStream((ThreadName + "/1.12.png"));

byte[] bytes = new byte[1024];

int len;

while ((len = is.read(bytes)) != -1) {

os.write(bytes, 0, len);

}

System.out.println("接受完毕,发送接受完毕给客户端");

OutputStream outputStream = socket.getOutputStream();

outputStream.write("发送完毕".getBytes(StandardCharsets.UTF_8));

is.close();

os.close();

} catch (IOException e) {

e.getStackTrace();

}

}

2,服务器端文件

public static void main(String[] args) throws IOException {

System.out.println("服务器端启动");

ServerSocket serverSocket = new ServerSocket(10000);

while (true) {

Socket socket = serverSocket.accept();

MyThread myThread = new MyThread(socket);

myThread.start();

}

}

3,客户端文件

public static void main(String[] args) throws IOException {

System.out.println("客户端正在启动");

Socket socket = new Socket("127.0.1.0", 10000);

System.out.println("连接成功,输入1传输文件");

Scanner scanner = new Scanner(System.in);

int num = scanner.nextInt();

if (num == 1) {

InputStream is = new FileInputStream("D:\\java\\text\\abc.png");

FileOutputStream os = (FileOutputStream) socket.getOutputStream();

byte[] bytes = new byte[1024];

int len;

while ((len = is.read(bytes)) != -1) {

os.write(bytes, 0, len);

}

socket.shutdownOutput();

BufferedReader bufferedReader=new BufferedReader(

new InputStreamReader(socket.getInputStream()));

String line;

while ((line=bufferedReader.readLine())!=null){

System.out.println(line);

}

bufferedReader.close();

os.close();

is.close();

socket.close();

}

}

服务器端可以接收多个客户端传文件,并不是等待传送结束后再开启新的传送

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023.1.30日学习内容(多线程接收,发送文件) 的相关文章

  • VMware安装win10虚拟机教程及常见问题

    win10虚拟机安装教程 一 前言 1 准备VMware虚拟机 可自行到VMware官网 或 点击链接 下载正版VMware Workstation Pro 2 准备需要安装的win10镜像 下载地址 下载 Windows 10 3 文章不
  • Win10中Docker下修改mysql配置(主要修改utf-8字符集)

    由于要修改MySQL的配置文件 在命令行修改每次重启都会失效 所以想修改Docker下的mysql配置文件 这样将其再作为一个镜像保存 以后就可以一劳永逸了 在Win10的Docker容器中进行vi操作时 没有Linux中的vi操作那么顺畅
  • 程序员面试题精选100题(35)-两链表的第一个公共结点

    程序员面试题精选100题 35 两链表的第一个公共结点 题目 两个单向链表 找出它们的第一个公共结点 链表的结点定义为 struct ListNode int m nKey ListNode m pNext 分析 这是一道微软的面试题 微软
  • 用Java去掉中文中括号【】,你学废了吗?

    大家好 今天我有多了一个需求 甲方爸爸让我取中文括号里的文本 这可怎么办嘛 费劲心思 i get do not bb show me code ok String msg sadasd 的范德萨发斯蒂芬斯蒂芬 打撒所所多多 String r
  • C语言常用的8种滤波算法

    最近在研究一些滤波算法 扒了网络上的一些算法做了总结 并加入了自己思考和想法 梳理一些代码 仅供参考学习 1 滑动平均滤波 A 名称 递推平均滤波法 又称滑动平均滤波法 B 方法 把连续取得的N个采样值看成一个队列 队列的长度固定为N 每次
  • SSM框架整合之单表操作

    1 Spring和Spring MVC父子容器 概念介绍 1 在Spring与SpringMVC进行整合的时候 一般情况下我们会使用不同的配置文件来配置Spring和SpringMVC 因此我们的应用中会存在至少2个ApplicationC
  • 学了C++能做什么?

    相信很多人接触编程都是源于大学期间的那堂C 语言程序编程 但是这门课却只告诉了你编程语言是什么 却没告诉你要怎么去熟练掌握编程 所以 不可避免的是许多人在毕业前夕才发现虽然学会了C 但是好像却不知道能干什么 能找什么样的工作 能去什么样的公
  • 创建oracle的sequence 和 trigger

    Create sequence NOMAXvalue create sequence SEQ ADMIN ID minvalue 1 maxvalue 99999999 NOMAXvalue start with 1 increment b
  • 范数和正则化

    概念 范数是具有 长度 概念的函数 在向量空间内 为所有的向量的赋予非零的增长度或者大小 不同的范数 所求的向量的长度或者大小是不同的 举个例子 2维空间中 向量 3 4 的长度是5 那么5就是这个向量的一个范数的值 更确切的说 是欧式范数

随机推荐

  • osgEarth各个示例分析目录

    概述 由于数字地球项目需要osgEarth的代码知识 故决定学习osgEarth的示例 示例中有很多可以借鉴的内容 以下是分析目录 完全是随机进行的 并没有什么上下文逻辑 每一篇代码边学习边分析 如果有错误 请各路大佬斧正 目录 osgEa
  • matlab函数怎么写,matlab怎么写主函数

    1 matlab怎么写函数文件 1 首先在电脑中打开baimatlab软件 2 在打开的页面中点击 du主页 栏目下的 新建 按钮 zhi 3 然后在打开的下拉菜单中选择 函数 选项 4 即可打开函数编辑器 在其中dao可以进行函数的输入设
  • 稀疏光流KLT跟踪算法

    1 前言 前段时间学习了Harris角点检测和Shi Tomasi角点检测 但实际用途没用 特此记录一下运用角点的稀疏光流KLT跟踪算法 2 概念 2 1光流概念 光流是空间运动物体在观察成像平面上的像素运动的瞬时速度 是利用图像序列中像素
  • xacml开源代码

    http blog csdn net gxp article details 6799957 t2 pam xacml the extensible access control markup language xacml allows f
  • 图像风格迁移实战

    最近看了一些基于深度学习的Style Transfer 也就是风格迁移相关的paper 感觉挺有意思的 所谓风格迁移 其实就是提供一幅画 Reference style image 将任意一张照片转化成这个风格 并尽量保留原照的内容 Con
  • 基于Hough变化的图像校正

    一 问题背景 下图是一张单据的扫描件 编程计算旋转角度对其进行校正 并补全断裂的表格线 二 算法原理 1 基于sobel算子的边缘检测 要想将倾斜表格旋转进行校正 首先要计算表格倾斜的角度 我们用Hough变化来计算倾斜角度 Hough变换
  • 索引实现原理

    1 索引的介绍 一种数据结构 为了快速找到数据记录 索引存储在内存中 主要作用是 加快查询速度 提高数据库性能 2 数据库中索引的分类 普通索引 最基本的索引没有任何限制 唯一索引 与普通索引类似 索引列的值必须唯一 允许null 如果是组
  • 为何推荐首选enum class 而非 enum

    首先 我们比较下这两种枚举类型的表示方式上有何差异 一 异同点 enum class 官方解释 unscoped enum enum identifier type enum list scoped enum enum class stru
  • AS修改快捷键以及AS设置

    1 修改快捷键方式 2 设置代码提示忽略大小写 3 设置AS中Java代码各个部分的字体颜色
  • JCreator 使用技巧

    转自 http wenku baidu com view 32f22a287375a417866f8fcf html JCreator 使用技巧 JCreator 使用技巧 1 导语 在众多的JAVA开发环境中 我对 JCreator 情有
  • 第十天栈和队列

    栈 和队列的原理大家应该很熟悉了 队列是先进先出 栈是先进后出 首先大家要知道 栈和队列是STL C 标准库 里面的两个数据结构 接下来介绍的栈和队列也是SGI STL里面的数据结构 知道了使用版本 才知道对应的底层实现 来说一说栈 栈先进
  • mdk中error: L6047U: The size of this image exceeds

    跳出error L6047U The size of this image 192324 bytes exceeds the maximum all的原因是由于mdk未破解 亲测已解决 破解工具的链接 http www xue51 com
  • ubuntu设置pac代理

    前言 由于公司ubuntu没有对代理做有线代理去搜索资料 所以下面得内容是为了记录一下 设置代理pac代理有两种方式 可能还有其他得 1 浏览器设置自动代理配置得URL PAC 2 写入profile配置文件 1 浏览器设置自动代理配置的U
  • YOLOv5-Shufflenetv2

    YOLOv5中修改网络结构的一般步骤 models common py 在common py文件中 加入要修改的模块代码 models yolo py 在yolo py文件内的parse model函数里添加新模块的名称 models ne
  • 【100天精通Python】Day51:Python 数据分析_数据分析入门基础与Anaconda 环境搭建

    目录 1 科学计算和数据分析概述 2 数据收集和准备 2 1 数据收集 2 1 1 文件导入 2 1 2 数据库连接 2 1 3 API请求 2 1 4 网络爬虫 2 2 数据清洗 2 2 1 处理缺失值 2 2 2 去除重复值 2 2 3
  • 浪潮服务器NF5280M5配置管理口BMC的IP web界面登录 ipmi 代外【详细】

    开启服务器以后等待按del或f2 进入bios选择第五项Server Mgmt界面选择BMC Network Configuration 回车 选择BMC IPv4 Network Configuration 回车 注意 只需要配置BMC
  • MySQL——必考面试题 ①

    一 为什么要使用数据库 数据保存在内存 优点 存取速度快 缺点 数据不能永久保存 数据保存在文件 优点 数据永久保存 缺点 速度比内存操作慢 频繁的IO操作 查询数据不方便 数据保存在数据库 数据永久保存 使用SQL语句 查询方便效率高 管
  • unity生成vr效果

    这是一个谷歌的插件 GoogleVRForUnity unitypackage 谷歌插件下载地址 开始制作最简单的 VR 盒子 导入 GoogleVRForUnity unitypackage 将项目的平台设置为 Android 平台 在项
  • web前端DOM

    1 2 1 什么是DOM 文档对象模型 Document Object Model 简称DOM 是 W3C 组织推荐的处理可扩展标记语言 html或者xhtml 的标准编程接口 W3C 已经定义了一系列的 DOM 接口 通过这些 DOM 接
  • 2023.1.30日学习内容(多线程接收,发送文件)

    1 多线程接收文件 1 线程文件 public Socket socket public MyThread Socket socket this socket socket Override public void run try Stri