Java:TCP 通信方法(基本发送 + 接收)并 实现文件传输且反馈

TCP 通信编程

TCP:是一种可靠的网络协议,再通信两端都建立一个Socket对象。
通信之前要保证连接已经建立。
通过Socket产生IO流进行通信。

创建对象时,会连接服务器,连接不上,会报错。
所以,先运行服务端,再运行发送端。

具体过程,注释写的很清楚了。

发送数据

package demo1;import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.charset.StandardCharsets;public class Client {public static void main(String[] args) throws IOException {// 创建连接通道Socket socket = new Socket("127.0.0.1", 1000);// 通过通道获取输出流OutputStream os = socket.getOutputStream();// 输出内容os.write("你好阿".getBytes());// 释放资源os.close();}
}

接收数据

package demo1;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String[] args) throws IOException {// 创建对象接收ServerSocket ss = new ServerSocket(1000);// 获取连接的通道Socket socket = ss.accept();// 根据通道获得输入流InputStream is = socket.getInputStream();// 字节流 转换为 字符流,再包装成缓冲字符流,不出现乱码,并 提高效率BufferedReader br = new BufferedReader(new InputStreamReader(is));// 读入String line;while ((line = br.readLine()) != null) {System.out.print(line);}// 释放资源socket.close();ss.close();}
}

传输文件 并 回馈

Client:

package demo3;import java.io.*;
import java.net.Socket;public class Client {public static void main(String[] args) throws IOException {// 建立连接Socket socket = new Socket("127.0.0.1", 1000);// 创建缓冲输入字节流BufferedInputStream bis = new BufferedInputStream(new FileInputStream("start/img.jpg"));// 创建输出流BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());// 读入文件并传输byte[] bytes = new byte[4096];int len;while ((len = bis.read(bytes)) != -1) {bos.write(bytes, 0, len);}// 写出结束标记socket.shutdownOutput();// 获取服务器回馈,读入,字节流转字符流,在转缓冲流BufferedReader br= new BufferedReader(new InputStreamReader(socket.getInputStream()));String line;line = br.readLine();System.out.println(line);// 释放资源socket.close();}
}

Server:

package demo3;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String[] args) throws IOException {// 创建对象ServerSocket ss = new ServerSocket(1000);// 接收连接Socket socket = ss.accept();// 读取数据,并保存到本地BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("target/b.jpg"));byte[] bytes = new byte[4096];int len;while ((len = bis.read(bytes)) != -1) {bos.write(bytes, 0, len);}// 写回数据BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));bw.write("上传成功");bw.flush();// 释放资源socket.close();ss.close();}
}

运行结果:回馈和传输成功
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6大最佳目标进度管理软件盘点——团队/个人

在当今快节奏的生活和工作中,有效地管理目标和任务对于每个人来说都至关重要。在工作中,我们需要清晰地规划项目目标、安排任务和追踪进度;在生活中,我们也需要合理安排时间、记录重要事项以及追踪个人目标的实现进度。为了更好地…

【Maven技术专题】「知识盲区」教你如何使用深入分析Maven配置私服仓库的使用指南(基础篇)

Maven私服的使用实战 将内部构件部署到私服仓库什么是仓库和仓库组远程仓库的定义仓库定义基本结构仓库结构的属性介绍 部署部件到远程仓库远程仓库的认证用户名密码认证案例参考 私钥进行鉴权 镜像mirror镜像仓库的工作原理 将内部构件部署到私服仓库 如果想先学好什么如何将…

AMEYA360:海康存储PCIe4.0固态硬盘A4000介绍

海康存储即将发布PCIe4.0固态硬盘新品A4000,搭载全新定制主控及高品质3D NAND闪存颗粒,最大顺序读取速度达7100MB/s,提供五年质保服务。 2022年,海康存储开始在PCIe 4.0固态硬盘领域全面发力,推出C4000 ECO、C4000等多…

【OpenVINO】使用OpenVINO实现 RT-DETR 模型 INT8量化推理加速

使用OpenVINO实现 RT-DETR 模型 INT8量化推理加速 1. 使用 OpenVINO 实现 RT-DETR 模型 INT8量化1.1 神经网络压缩框架 (NNCF)1.2 准备校准数据集1.2.1 下载COCO验证数据集1.2.2 Validator包装器1.2.3 转换用于量化的数据集 1.3 定义模型精度校验方法1.4…

DBA轻松应对慢查询挑战,使用NineData这款工具就够了!

对于一个 DBA 来说,从公司数据库系统的稳定程度可以看出他的能力几何,一个优秀的 DBA 不仅要保证数据库的稳定运行,还需要有能力有效处理数据库的各种突发性能问题,而最常见的性能问题,就是慢查询。 我们公司规模比较…

docker-compose 单机容器编排

docker-compose 单机容器编排 dockerfile:先配置好文件,然后build,镜像------->容器 docker-conpose既可以基于dockerfile,也可以基于镜像,一件事拉起镜像和容器。 docker-compose 核心就是yml文件,可…

共享门店会在未来新零售占据主角吗?

共享门店作为一种创新的商业模式,在未来新零售领域中可能会占据一定的角色,但具体是否会成为主角,还需要根据市场的发展和技术的进步来判断。 首先,共享门店模式通过资源共享、风险共担、客户共享和收益共享等方式,为…

WordPress插件你好多莉( Hello Dolly )可否卸載

什么是你好多莉Hello Dolly WordPress插件 你好多莉是 WordPress插件 简单的预装在 WordPress 上。 如果您激活后者,它将显示出名曲的歌词“ 你好,多莉 “要 路易斯阿姆斯特朗. 您可能已经注意到,在阅读插件说明时,还不够清楚。 …

C语言之数组精讲(1)

目录 数组 数组的声明(使用数组前的准备) 访问数组(数组的使用方法) 数组的遍历 数组初始化 1.在声明变量时,除了必要的情况下,都需要对变量进行初始化。 2.我们还可以像下面在声明数组时不指定元素…

python-爬取壁纸

代理池的,防止IP 被封 找到图片真实地址 现在看到的只是图片的预览地址 (previews) 1.检查: 2.鼠标变为箭头时查看网页源代码 关于怎样在源代码中找到图片的真实地址 ??? 为什么在源代码界面 ctrl f 时候搜索的是 .png ??? 首先图片地址是以 .j…

11 月公链盘点:Solana 强势复苏,Blast 飞速崛起,Web3 游戏市值猛涨

作者:stellafootprint.network 11 月的加密市场充满了重大事件,从比特币 ETF 的热议到币安 40 亿美元的和解,均获得了极大的关注。在以太坊继续主导 TVL 和像 Arbitrum 这样的 Layer 2 成为焦点的同时,我们也见证了 Solana 引人注…

通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair

本文通过示例介绍了 RIOT 如何轻松地将数据从 AWS ElastiCache 迁移到云原生内存数据库(如 Tair 和云数据库 Redis 版)。 1. 准备资源迁移 1.1. 源代码 AWS ElastiCache cache.r6g.xlarge。它有三个数据分片,与 Redis 6.2 兼容。 AWS EC2 t2.…

TypeScript中的基本类型

提示:TypeScript中的基本类型 文章目录 前言基本类型1.类型声明2.自动类型判断3.类型断言 前言 TypeScript (计算机编程语言)简称:TS,是 JavaScript 的超集。简单来说就是:JS 有的 TS 都有。JS写的代码在TS…

Video anomaly detection with spatio-temporal dissociation 论文阅读

Video anomaly detection with spatio-temporal dissociation 摘要1.介绍2.相关工作3. Methods3.1. Overview3.2. Spatial autoencoder3.3. Motion autoencoder3.4. Variance attention module3.5. Clustering3.6. The training objective function 4. Experiments5. Conclusio…

白酒行业@2023: 「库存」的烦恼

【潮汐商业评论/原创】 不久前,中国酒类流通协会官方微信通知,“经销商及代理商积压库存过多,无法进行正常采购”,原计划于12月11至13日举办的2023杭州国际酒业博览会延期,将与2024北京国际酒业博览会合并。 库存过多…

Reinfocement Learning 学习笔记PartⅠ

文章目录 Reinfocement Learning一、基本概念二、贝尔曼公式(bellman equation)2.1 为什么return重要2.2 state value function的定义2.3 贝尔曼公式推导2.4 如何求解贝尔曼公式2.5 Action value的定义 三、贝尔曼最优公式(bellman optimalit…

山西电力市场日前价格预测【2023-12-11】

日前价格预测 预测说明: 如上图所示,预测明日(2023-12-11)山西电力市场全天平均日前电价为535.55元/MWh。其中,最高日前电价为689.29元/MWh,预计出现在09:00。最低日前电价为422.38元/MWh,预计…

许战海战略文库|美国品牌实践:从品类品牌向产业品牌转变

引言:《品类战略》是上世纪70年代特劳特和里斯所推崇的定位理论,强调“品类聚焦是唯一正确的战略“新品类要使用新品牌”等战略思想,并对品牌延伸等多元化品牌进行批判,并由中国代理人传入中国,从2002年至今滋生了众多品类品牌,阻碍中国经济发展。 在今天…

是谁,在参与数十亿美元的量子市场?

量子技术是最不为人们所了解、但却最有希望在未来几年颠覆商业和产业的进步技术之一。 很少有像量子信息科学市场这样小的市场能引起如此热烈的讨论。上周,根据Hyperion Research在圣克拉拉举行的Q2B硅谷会议上发布的年度量子计算(QC)市场更新…

为养宠家庭量身打造,352 X63 Pet宠物专效空气净化器“养宠安馨,人宠共护”

当下,养宠人群日益增多,宠物在给家庭带来了欢乐的同时,也产生了一系列困扰,如何在健康环境中快乐养宠,成为很多家养宠家庭的新需求。成立于2014年的北京三五二环保科技有限公司是一家立足于家庭洁净空气和安全用水领域的科技创新型公司。以“安全、健康、舒适”等消费需求为核心…