package com.learn.demo02.FileUpload;import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;/*文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据明确:数据源:c:\\1.jpg目的地:服务器实现步骤:1.创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源2.创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号3.使用Socket中的方法getOutputStream,获取网络字节输出流OutputStream对象4.使用本地字节输入流FileInputStream对象中的方法read,读取本地文件5.使用网络字节输出流OutputStream对象中的方法write,把读取到的文件上传到服务器6.使用Socket中的方法getInputStream,获取网络字节输入流InputStream对象7.使用网络字节输入流InputStream对象中的方法read读取服务回写的数据8.释放资源(FileInputStream,Socket)*/
public class TCPClient {public static void main(String[] args) throws IOException {//1.创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源FileInputStream fis = new FileInputStream("1.jpg");//2.创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号Socket socket = new Socket("127.0.0.1",8888);//3.使用Socket中的方法getOutputStream,获取网络字节输出流OutputStream对象OutputStream os = socket.getOutputStream();//4.使用本地字节输入流FileInputStream对象中的方法read,读取本地文件int len = 0;byte[] bytes = new byte[1024];while((len = fis.read(bytes))!=-1){//5.使用网络字节输出流OutputStream对象中的方法write,把读取到的文件上传到服务器os.write(bytes,0,len);}/*解决:上传完文件,给服务器写一个结束标记void shutdownOutput() 禁用此套接字的输出流。对于 TCP 套接字,任何以前写入的数据都将被发送,并且后跟 TCP 的正常连接终止序列。*/socket.shutdownOutput();//6.使用Socket中的方法getInputStream,获取网络字节输入流InputStream对象InputStream is = socket.getInputStream();System.out.println("333333333333333333333");//7.使用网络字节输入流InputStream对象中的方法read读取服务回写的数据while((len = is.read(bytes))!=-1){System.out.println(new String(bytes,0,len));}System.out.println("444444444444444444  while死循环打印不到");//8.释放资源(FileInputStream,Socket)fis.close();socket.close();}
}

文件上传案例的客户端相关推荐

  1. 文件上传案例优化(文件命名循环接收多线程提高效率)

    package com.learn.demo03.FileUpload;import java.io.FileInputStream; import java.io.IOException; impo ...

  2. 文件上传案例的服务器端

    package com.learn.demo02.FileUpload;import java.io.File; import java.io.FileOutputStream; import jav ...

  3. MVC文件上传07-使用客户端jQuery-File-Upload插件和服务端Backload组件裁剪上传图片...

    本篇通过在配置文件中设置,对上传图片修剪后保存到指定文件夹. 相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  MVC文件上传02-使用HttpPostedFileB ...

  4. 文件上传案例——客户端和服务端套接字

    一.文件上传原理 文件上传下载就是反复的输入流和输出流的read和wirte方法(反复的内存和硬盘的交互): 二.实现 1.客户端实现: 2.服务端实现: 3.解决客户端和服务端两个程序在完成上传下载 ...

  5. tcp文件上传--多个客户端

    1.client public static void main(String[] args) throws IOException {// 创建客户端Socket对象Socket s = new S ...

  6. TCP文件上传Java_Java 理解TCP通信案例:文件上传案例

    文件上传分析图解 [客户端]输入流,从硬盘读取文件数据到程序中. [客户端]输出流,写出文件数据到服务端. [服务端]输入流,读取文件数据到服务端程序. [服务端]输出流,写出文件数据到服务器硬盘中. ...

  7. 【java笔记】网络编程:文件上传案例

    原理:文件的复制 客户端读取本地的文件,把文件上传到服务器,服务器把上传的文件保存到服务器的硬盘上 步骤: 1.客户端使用本地的字节输入流,读取要上传的文件 2.客户端使用网路字节输出流,把读取的文件 ...

  8. ajax框架怎么学,Ajax框架之DWR学习(文件上传案例)

    DWR文件上传起来 还是挺方便的,直接就是咔咔的上传 ,实现了静态的文件上传,老爽了,需要依赖commons-fileupload 这个上传包. 目录结构 环境搭建 pom.xml commons-f ...

  9. Rxjava+Retrofit2+Okhttp3多文件上传(服务器端代码+客户端代码)

    所有代码亲测可用,如有问题,欢迎指正. 首先在ApiService接口文件中新建文件上传接口 public interface ApiService {static final String BASE ...

最新文章

  1. 几个经典的TCP通信函数
  2. html5发展前景-兄弟连,IT兄弟连 HTML5教程 HTML5的曲折发展过程 HTML5的诞生
  3. 罗森伯格成功布线中国海关博物馆
  4. Hadoop推测执行(以空间换取时间)
  5. ImportError: cannot import name *
  6. Linux内核IO追踪:用GDB调试,一个磁盘IO的流程是什么样的
  7. Java基础学习之画板1
  8. 【代码笔记】Web--使用Chrome来查看网页源代码
  9. 如何用计算机考核教学设计,计算机一级教案
  10. [].push.apply(a, b)是什么意思
  11. 饥荒联机版服务器控制台本地和在线,《饥荒》多人联机版控制台开启方法详解...
  12. Unity3D实现3D立体游戏原理及过程
  13. c语言程序设计五子棋棋盘怎么画,五子棋的棋盘画不出来,求助!!
  14. chrome扩展设置代理
  15. 图像处理直方图均衡化
  16. kubernetes endpoint 代码阅读
  17. 未来世界,已经不在遥远
  18. piaget读法_罗读音【罗读音英语头条】- 罗读音知识点 - 中企动力
  19. DNS Reply Flood防御原理
  20. SQL查询语句大全(转)

热门文章

  1. android Studio 配置LUA 开发环境
  2. Silverlight Telerik控件学习:数据录入、数据验证
  3. yslow客户端性能测试
  4. 分页控件 实战 Post篇
  5. Win10安装华三模拟器各种疑难问题
  6. C#学习笔记——读写ini文件
  7. Linux定时任务Crontab详解_定时备份
  8. 管理Exchange 2003客户端访问
  9. 精通Android3笔记--第十一章
  10. 用 Python 读写 Excel 表格,就是这么的简单粗暴且乏味