《Java两台电脑之间传输文件》
开发工具与关键技术:IDEA Java
撰写时间:2021/8/10
讲解一下两台电脑之间通过java代码传输视频文件(在有网络的情况下),我通过TCP协议来完成操作 ,TCP协议要明确哪一台电脑是服务端,哪一台是客户端,服务端负责发送数据,客户端负责接收数据。
一.我首先说客户端的代码怎么写代码图如下
public class ClientDome {public static void main(String[] args) throwsIOException {//这里是客户端Socket s = new Socket("127.0.0.1", 10001);//使用字节缓冲流接收数据//服务器输出数据 ,客户端接收数据保存到数据库中BufferedInputStream bis=new BufferedInputStream(s.getInputStream());BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("shiping.mp4"));byte[] bytes=new byte[8192];int len;while ((len=bis.read(bytes))!=-1){bos.write(bytes,0,len);bos.flush();}BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));//输出 反馈给服务器bw.write("我已接收到视频文件");bw.flush();bos.close();s.close();}
}
首先我定义了一个Socket类传入两个参数明确服务端的IP地址和端口,然后使用字节缓冲流接收数据,然后把数据读取到当前项目中,所以路径前缀我不需要写了,使用一个字节一个字节数组的方法读取数据,读取完数据以后,要将信息反馈给服务器,表示已经读取完数据,最后关闭流释放资源。
- 我再来说一下服务端的代码怎么写如图下所示,首先我实例化了ServerSocket类,使用有参构造方法,参数是端点,然后我用这个类的实例化对象ss去调用监听方accept返回
public class ServerDome {public static void main(String[] args) throwsIOException {//服务器接收数据ServerSocket ss=new ServerSocket(10001);Socket s=ss.accept();//读取视频文件 读取 当前类文件路径下的视频文件BufferedInputStream bis=new BufferedInputStream(ServerDome.class.getClassLoader().getResourceAsStream("Cyberpunk 2077.mp4"));BufferedOutputStream bos=new BufferedOutputStream(s.getOutputStream());byte[] bytes=new byte[8192];int len;while ((len=bis.read(bytes))!=-1){bos.write(bytes,0,len);bos.flush();}s.shutdownOutput();BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));//输出 数据System.out.println("客户端:"+br.readLine());bis.close();s.close();}
}
一个Socket对象用s声明该返回值,然后首先我用字节缓冲输入流读取到当前这个测试类的根文件路径下的视频文件,读取的同时用字节缓冲输出输出数据给客户端,输出完毕之后一定要用 s调用 shutdownOutput()方法,关闭TCP套接字字符输出流,如果不关闭这里一直会等待数据读取然后输出,然后客户端一边也会一直在等待接收数据,然后就卡在这里了。
最后接收客户端的反馈输出到控制台中,并且关闭流和服务端,释放资源。
最后我在我自己的电脑上给自己的传输文件,在同一台电脑上执行这个操作,首先打服务端,然后再打开客户端。结果如下
如果你想尝试一下传输文件最好拉上自己的好友一起尝试。
《Java两台电脑之间传输文件》相关推荐
- ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- 信息学奥赛真题解析(玩具谜题)
玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...
- 信息学奥赛之初赛 第1轮 讲解(01-08课)
信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...
- 信息学奥赛一本通习题答案(五)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通习题答案(三)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
- 信息学奥赛一本通题目代码(非题库)
为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...
- 信息学奥赛一本通(C++版) 刷题 记录
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...
- 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离
首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...
最新文章
- bugzilla部署
- 传输18 Gbps的HDMI 2.0,包括4 K 60 4:4:4参考设计
- 高产来自“长期主义”:智源学者朱军谈ICLR 2020 全球发文第二的经验法则
- Jsp/Servlet:实现文件上传与下载
- arcgis python-ArcGIS Python 资源收藏
- Swift之深入解析访问控制权限
- java bean 对象属性复制框架BeanMapping-release_0.0.2-注解支持
- c#编译时提高兼容性_幻像类型提高了编译时的安全性
- dct变换的主要优点有哪些_发泡保温材料包括哪些成分?主要优点是什么?有没有发展前景?...
- oracle触发和存储过程,Oracle存储过程与触发器
- java异常处理机制_Java核心技术梳理-异常处理
- Animation Framework
- 深度神经网络 轻量化_正则化对深度神经网络的影响
- 微型计算机原理及应用课后习题答案,微型计算机原理及应用课后习题答案.doc...
- 【16】 数学建模 | 蒙特卡洛模拟方法 | 详细案例和代码解析(清风课程,有版权问题,私聊删除)
- linux微软雅黑字体库_Ubuntu 安装 Wine 4.4 并设置微软雅黑字体解决中文乱码
- css常用单位总结: px / em / rem / vw / vh / vmax / vmin
- js调用一次函数,中间增加一个内容
- Apm飞控学习笔记之-电机解锁和故障保护-Cxm
- 211大学副教授月工资只有7000多?高校教授真实的待遇情况如何?
热门文章
- highcharts日常用法的總結之legend 方法總結
- 俄罗斯方块 C/C++ 效果展示
- 梦古服务器端公告文件修改,9月8日开放新服以及限制部分服务器角色创建公告...
- 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——理论
- 解决双网卡外网、内网冲突问题
- 发现阿里DNS存在恶意广告行为
- lamda表达式是啥?是如何来的呢?如何快速理解lamda表达式
- Jmeter监控插件:监控服务器性能
- AI在棒球联盟赛运用·棒球1号位
- 菜鸟程序员成长记Java系列(二)