参考文档

1.https://www.sxt.cn/Java_jQuery_in_action/ten-filebytestream.html

2.https://www.sxt.cn/Java_jQuery_in_action/ten-bufferedbyte.html

参考视频

https://www.bilibili.com/video/BV1ct411n7oG?p=245

1.代码功能

客户端上传文件到服务器端

2.学习重点

1.文件字节流

2.缓冲字节流

3.客户端代码

1.注意输入流是FileInputStream

2.把客户端的输入流经过缓存数组读写入到客户端的输出流

package com.sxt.tcp;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.Socket;

import java.net.UnknownHostException;

public class FileClient {

public static void main(String[] args) throws UnknownHostException, IOException {

//1.建立连接:使用Socket创建客户端+服务的地址和端口

System.out.println("=================client================");

Socket client=new Socket("localhost",8888);

//2.操作:拷贝 上传

InputStream is=new BufferedInputStream(new FileInputStream("src/ndl.png"));

OutputStream os=new BufferedOutputStream(client.getOutputStream());

byte[] flush=new byte[1024];

int len=-1;

while((len=is.read(flush))!=-1) {

os.write(flush,0,len);

}

os.flush();

//3.释放资源

os.close();

is.close();

client.close();

}

}

4.服务器端代码

1.注意输出流是FileOutputStream

2.把客户端的输出流经过缓存数组读写入到服务器端输出流

package com.sxt.tcp;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class FileServer {

public static void main(String[] args) throws IOException {

// 1.指定端口 使用ServerSocket创建服务器

ServerSocket server=new ServerSocket(8888);

// 2.阻塞式等待连接 accept

Socket client=server.accept();

System.out.println("一个客户端建立了连接");

//3.操作:文件拷贝 存储

InputStream is=new BufferedInputStream(client.getInputStream());

OutputStream os=new BufferedOutputStream(new FileOutputStream("src/tcp.png"));

byte[] flush=new byte[1024];

int len=-1;

while((len=is.read(flush))!=-1) {

os.write(flush,0,len);

}

os.flush();

os.close();

is.close();

}

}

TCP文件上传Java_java 基于TCP协议的文件上传相关推荐

  1. TCP/IP网络编程之基于TCP的服务端/客户端(二)

    回声客户端问题 上一章TCP/IP网络编程之基于TCP的服务端/客户端(一)中,我们解释了回声客户端所存在的问题,那么单单是客户端的问题,服务端没有任何问题?是的,服务端没有问题,现在先让我们回顾下服 ...

  2. TCP/IP网络编程之基于TCP的服务端/客户端(一)

    TCP/IP网络编程之基于TCP的服务端/客户端(一) 理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字.因为TCP套接字是面向连接的,因此又称为基于 ...

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

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

  4. 基于FTP协议实现文件上传与下载

    目录 一.FTP简介 二.关于FTP服务器 三.文件上传 分步讲解: 完整实现代码: 四.下载文件 分步讲解: 完整实现代码: 小结 一.FTP简介 FTP(File Transfer Protoco ...

  5. 基于FTP协议的文件传输与下载

    目录 一.FTP协议: 二.文件上传: 1.连接服务器 2.登录操作 3.上传操作 三.文件下载 1.连接服务器 2.登录操作 3.下载操作 四. 总结: 一.FTP协议: ftp是(File Tra ...

  6. java tcp 编程实例_Java实现基于TCP的通讯程序实例解析

    Java中的TCP通信程序 TCP可以实现两台计算机之间的数据交互通信的两端,要严格区分客户端与服务端 两端通信时的步骤: 1.服务端程序,需要事先启动,等待客户端连接 2.客户端主动连接服务器端,才 ...

  7. excel上传java_java:Excel操作之Excel上传

    1.导入我们需要的jar包. 2.创建servlet命名为UploadExcelServlet,url为UploadExcelServlet. 3.创建Excel的批量处理方法ExcelBatchUt ...

  8. qq传java文件_java学习:基于TCP的网络文件传输(可改写的QQ文件传输)

    由于最近要写个仿聊天程序中文件传输的内容,又学习了一下流的知识 找了好久没找到很全的,后来不知道哪个地方找了个不错的客户端和服务器端的代码,自己改了下,感觉还行吧.放到博客上来帮助记忆 服务器端: p ...

  9. vivo手机互传的文件怎么找到_基于 P2P 的在线文件传输工具,电脑与手机互传文件...

    小鹿快传是一款点对点(P2P)的在线文件传输工具,无需登录,即可在电脑.手机间互传文件,简单方便快捷. 小鹿快传是一款在线工具,只需要使用浏览器打开即可传输.无论电脑与电脑之间,手机与手机之间,还是电 ...

最新文章

  1. linux 裸设备 逻辑卷,Linux通过逻辑卷使用裸设备
  2. python实例 列表
  3. 用 Parity 发送 ERC20 Token
  4. kubernetes-Pod定义
  5. 微信小程序 监听位置信息
  6. linux 命令行使用wget下载百度云资源
  7. 华为2019网络挑战赛初赛网络方向部分模拟题及答案
  8. QT 信号与槽不在同一个线程 connect
  9. [工作随笔]关于马戏团的故事
  10. 艾伦·凯与Smalltalk语言
  11. 湖南大学计算机考研资料汇总
  12. 搜索算法——双向bfs
  13. python 取整运算符_python运算符
  14. 详解动态规划算法(Python实现动态规划算法典型例题)
  15. [SLAM]高博视觉SLAM十四讲ch4中useSophus报错
  16. C#网站图片下载器,网络爬虫,仅供学习参考使用,不可用于商业活动
  17. 今天情人节,程序员该如何绝地反击?
  18. JavaScript — 基础语法
  19. 【测试工具】五、jmeter在GUI与non-GUI模式下结果集自定义封装展示
  20. visual studio 2019 分屏

热门文章

  1. Windows编程之定时器的使用和定时销毁桌面出现的窗口,以及窗口句柄的获取
  2. java的弱引用_深入理解Java中的弱引用
  3. Android开发之引用三方库导致SO库冲突的解决办法
  4. mysql数据库局限性_Mysql分区表局限性总结
  5. java栈 类 堆_详细介绍Java中的堆和栈
  6. Java基本类型练习1
  7. 利用github和git命令,将本地项目共享到服务器上
  8. 区块链的那些事,你知道和不知道的都在这里!
  9. 病毒行为分析初探(三)
  10. 一分钟学会Git操作流程