java网络编程TCP传输—流操作—拿到源后的写入动作
在网络编程中的TCP传输里,拿到Socket的源后,应该怎么进行读写操作呢,下面我列举了两种方法,希望大家帮忙补充····
1.利用byte数组作为一个缓冲区进行读写
客户端上传
1 //获取socket流,将图片上传给服务端 2 FileInputStream fis=new FileInputStream("c:\\12.jpg"); 3 4 //获取了输出流 5 OutputStream out=s.getOutputStream(); 6 7 //用数组作为缓冲 8 byte[]buf=new byte[1024]; 9 10 //len用来记录长度 11 int len=0; 12 13 //循环读写 14 while((len=fis.read(buf))!=-1){ 15 //当返回-1时表示读完毕,此时len为总长度 16 out.write(buf,0,len); 17 }
//服务端接收时 1 InputStream in=s.getInputStream(); 2 File dir=new File("c:\\pic"); 3 if(!dir.exists()){ 4 dir.mkdirs(); 5 } 6 FileOutputStream fos=new FileOutputStream("server.jpg"); 7 byte[] buf=new byte[1024]; 8 int len=0; 9 while((len=in.read())!=-1){ 10 fos.write(buf,0,len); 11 } 12
服务端接收(不需要写入文件中时)
1 byte [] buf=new byte[1024]; 2 //此时只需要或取长度就可以了 3 int len=in.read(buf); 4 //直接用数组获取文本就可以了 5 String text=new String(buf,0,len);
2.使用缓冲区作为缓冲
1 //客户端上传 //使用流输出数据 BufferedReader bufr=new BufferedReader(new FileReader("client.txt")); 2 3 //通过使用PrintWriter对字节流和字符流进行处理,接管流 4 PrintWriter out =new PrintWriter(s.getOutputStream(),true); 5 6 //开始读取,上传给服务端 7 String line=null; 8 while((line=bufr.readLine())!=null){ 9 out.println(line); 10 }
1 //服务端接收 //将接收的数据放入流中 2 BufferedReader bufIn= 3 new BufferedReader(new InputStreamReader(s.getInputStream())); 4 5 //指定要写入得文件 6 BufferedWriter bufw=new BufferedWriter(new FileWriter("server.txt")); 7 8 //开始读取 9 //缓冲区的默认大小为8k,一到8k则会自动刷新,若没有结束标志,则得到的文件大小一定是8的倍数 10 String line=null; 11 while((line=bufIn.readLine())!=null){ 12 if("over".equals(line)) 13 break; 14 bufw.write(line); 15 bufw.newLine(); 16 //自己写刷新 17 bufw.flush(); 18 } 19
转载于:https://www.cnblogs.com/Liang-Blog/p/5624859.html
java网络编程TCP传输—流操作—拿到源后的写入动作相关推荐
- 【Java网络编程与IO流】Java之Java Servlet详解
Java网络编程与IO流目录: [Java网络编程与IO流]Java中IO流分为几种?字符流.字节流.缓冲流.输入流.输出流.节点流.处理流 [Java网络编程与IO流]计算机网络常见面试题高频核心考 ...
- 【Java网络编程与IO流】Java中IO流分为几种?字符流、字节流、缓冲流、输入流、输出流、节点流、处理流
Java网络编程与IO流目录: [Java网络编程与IO流]Java中IO流分为几种?字符流.字节流.缓冲流.输入流.输出流.节点流.处理流 [Java网络编程与IO流]计算机网络常见面试题高频核心考 ...
- Java网络编程 ---- TCP 网络通信编程
视频:[零基础 快速学Java]韩顺平 零基础30天学会Java 文章目录 1. Socket 2. TCP 网络通信编程 3. 应用案例 1(使用字节流) 4. 应用案例 2(使用字节流) 5. 应 ...
- java网络编程--TCP程序设计
一,本章目标 了解Socket和ServerSocker类的作用 掌握ECHO程序开发 将多线程应用在TCP程序上实现多用户操作 二,具体内容 在java网络程序中,客户端只要符合连接的通讯协议,那么 ...
- Java网络编程---TCP通信
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信 Java对基于TCP协议的 ...
- 【Java网络编程与IO流】Http协议详解以及面试有关问题
HTTP协议详解以及面试有关题目 1 HTTP请求 一个HTTP请求报文由请求行.请求头部.空行和请求数据四个部分组成. 1.1 请求行 请求行中有请求方法字段.URL字段和HTTP协议版本3个字段组 ...
- Java网络编程 - TCP通信
文章目录 TCP通信 快速入门(一发一收) 编写客户端代码 编写服务器代码 多发多收 多发多收(同时接受多个客户端) 线程池优化 TCP通信 快速入门(一发一收) TCP协议回顾: TCP是一种面向连 ...
- java网络编程 TCP程序
在java中,使用Socket完成TCP(传输控制协议)程序开发,使用此类可以方便地建立可靠的,双向的,持续的,点对点通信连接 服务端: ServerSocket 程序段:Socket Serv ...
- java网络编程-- 文件传输
客户端发送 package cn.usts.edu.lesson03;import java.io.*; import java.net.InetAddress; import java.net.So ...
最新文章
- python3+ 解决写入中文乱码的问题
- 《Pro ASP.NET MVC 3 Framework》学习笔记之十六【示例项目SportsStore】
- Ajax异步中文数据处理
- 模式识别,计算机视觉,计算机图形学,智能控制,信号处理,语音识别,知识处理,机器学习,数据挖掘领域区别
- 单片机 c语言 按键长按短按,求助:单片机一键长按与短按按键实现的c程序有问题...
- 用HttpListener做web服务器,简单解析post方式过来的参数、上传的文件
- 为什么需要用户自定义类加载器及具体实现
- 职场警示录:怎样和“小人”和睦相处
- flink on yarn模式下释放flink占用yarn的资源
- 朴素贝叶斯趣味挑战项目
- Hbase 2.0 RegionObserver使用
- TypeError: ‘NoneType‘ object is not callable--python报错解决办法
- 自动放大_放大招!滴滴自动驾驶汽车通过图灵测试,quot;车技quot;不输老司机...
- move.js操作CSS3动画
- IncDec Sequence(差分)
- 从一个组件的实现来深刻理解 JS 中的继承
- Qt Quick核心编程
- 赤菟CH32V307 RISC-V 开发板 rt-thread 的坑 - esp8266的使用
- 【项目管理】Java OCR实现图片文字识别
- python 读xlsx文件数据_Python读取xlsx文件的实现方法