当前位置: 首页 > news >正文

Java TCP练习2

        TCPExercise2Send

package TCPExercise220240817;import java.io.*;
import java.net.Socket;public class TCPExercise2Send {public static void main(String[] args) throws IOException {// 需求:// 客户端:数据来自于本地文件,接收服务器反馈// 服务器:接收到的数据写入本地文件,给出反馈// 分析:// 创建客户端对象,创建输入流对象指向文件,每读一次数据就给服务器输出一次数据,输出结束后// 使用shutdownOutput()方法告知服务端传输结束// 创建服务器对象,创建输出流对象指向文件,每接受一次数据就使用输出流输出到文件中,传输结束后// 使用输出流给客户端反馈信息// 客户端接受服务端的回馈信息// 客户端// 创建Socket对象Socket socket = new Socket("127.0.0.1", 10086);// 从本地文件读入数据并发送到服务端BufferedReader bufferedReaderFile = new BufferedReader(new FileReader("D:\\Exercise\\words.txt"));BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));// 开始发送String lineFile;while ((lineFile = bufferedReaderFile.readLine()) != null) {bufferedWriter.write(lineFile);bufferedWriter.newLine();}bufferedWriter.flush();// 关闭输出流socket.shutdownOutput();// 接收服务端的返回BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));String line;while ((line = bufferedReader.readLine()) != null) {System.out.print(line);}// 关闭输入流socket.shutdownInput();// 关闭所有流bufferedReaderFile.close();bufferedReader.close();bufferedWriter.close();socket.close();}
}

        TCPExercise2Receive

package TCPExercise220240817;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;public class TCPExercise2Receive {public static void main(String[] args) throws IOException {// 服务端ServerSocket serverSocket = new ServerSocket(10086);Socket socket = serverSocket.accept();BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));String line;while ((line = bufferedReader.readLine()) != null) {System.out.println(line);}BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));bufferedWriter.write("服务端已经收到");bufferedWriter.newLine();bufferedWriter.flush();socket.shutdownOutput();// 关闭资源bufferedReader.close();socket.close();serverSocket.close();}
}

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 文件上传-导引
  • P2858 [USACO06FEB] Treats for the Cows
  • WordPress建站之头像及字体错误修正
  • Git 常用命令与工作流程总结
  • 域自适应,你适应了嘛?
  • 快讯 | OpenAI 找回场子:chatgpt-4o-latest 刷新多项AI跑分纪录
  • 1.Linux_常识
  • Anaconda安装jupyter notebook、jupyterlab及体验
  • 如何快速掌握一款MCU
  • selenium爬取搜狗网站新闻的小Demo
  • 【自用】Python爬虫学习(一):爬虫基础与四个简单案例
  • petalinux-config -c busybox 报错
  • Linux2.6内核进程调度队列详细讲解
  • XXX【4】策略模式
  • ffmpeg开发者视频剪辑器
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • C# 免费离线人脸识别 2.0 Demo
  • idea + plantuml 画流程图
  • JS专题之继承
  • Netty源码解析1-Buffer
  • Shadow DOM 内部构造及如何构建独立组件
  • Vue 重置组件到初始状态
  • Webpack 4x 之路 ( 四 )
  • XML已死 ?
  • 关于springcloud Gateway中的限流
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 前嗅ForeSpider采集配置界面介绍
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #pragma once
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十一)c52学习之旅-动态数码管
  • (算法)Travel Information Center
  • (五)MySQL的备份及恢复
  • (一) springboot详细介绍
  • (转)EOS中账户、钱包和密钥的关系
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .DFS.
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .net流程开发平台的一些难点(1)