java Netty 之 文件传输
/** * 文件传输接收端,没有处理文件发送结束关闭流的情景 */ public class FileServerHandler extends SimpleChannelHandler { private File file = new File("F:/2.txt"); private FileOutputStream fos; public FileServerHandler() { try { if (!file.exists()) { file.createNewFile(); } else { file.delete(); file.createNewFile(); } fos = new FileOutputStream(file); } catch (IOException e) { e.printStackTrace(); } } @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { ChannelBuffer buffer = (ChannelBuffer) e.getMessage(); int length = buffer.readableBytes(); buffer.readBytes(fos, length); fos.flush(); buffer.clear(); } }
/** * 文件发送客户端,通过字节流来发送文件,仅实现文件传输部分, * 没有对文件传输结束进行处理 * 应该发送文件发送结束标识,供接受端关闭流。 */ public class FileClientHandler extends SimpleChannelHandler { // 每次处理的字节数 private int readLength = 8; @Override public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { // 发送文件 sendFile(e.getChannel()); } private void sendFile(Channel channel) throws IOException { File file = new File("E:/1.txt"); FileInputStream fis = new FileInputStream(file); int count = 0; for (;;) { BufferedInputStream bis = new BufferedInputStream(fis); byte[] bytes = new byte[readLength]; int readNum = bis.read(bytes, 0, readLength); if (readNum == -1) { return; } sendToServer(bytes, channel, readNum); System.out.println("Send count: " + ++count); } } private void sendToServer(byte[] bytes, Channel channel, int length) throws IOException { ChannelBuffer buffer = ChannelBuffers.copiedBuffer(bytes, 0, length); channel.write(buffer); } }
这只是一个简单的文件传输的例子,可以做为样例借鉴。对于大文件传输的情景,本样例并不支持,会出现内存溢出的情景。
相关推荐
简单但是内容不浅的netty传输文件的例子,实现客户端和服务器端。全面,5积分绝对值得。本人通过很久测试才完成该简单通俗易懂的例子。 netty版本:4.0.23
支持多文件、大文件上传,客户端长连接,只要客户端有文件就通知服务器要发送文件。
通过netty编写文件传输的客户端与服务端,以及协议说明, 通用的netty传输协议 通过该协议进行文件传输 文件传输客户端与服务端 可以根据文件的最后更新时间来增量传输文件 源码开放,通过eclipse或者idea导入代码...
Netty+H5实现实时进度条文件上传,支持断点续传。 1、WebSocketServer:服务启动类 2、服务启动后,浏览器访问http://localhost:9999 3、FileWebSocketFrameHandler类SERVER_SAVE_PATH常量为文件上传保存路经
通过netty获取文件进度,上传文件的时时数据大小,剩余时间.websocket和HTML结合,并不javascript的轮询获取上传进度,而是通过NIO的推送.
描述文档请看我的个人博客:www.mesoftware.cn
JAVA采用Netty库实现基于以DTU传输的TCP服务器 ,可以支持多端口通讯 ,同时也支持 多协议解析
netty5 对象传输demo
java Netty实现大文件分块传输详解
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输示例代码.
包括netty的文件传输的实例,以及一些netty的简单的实例,里面包含有相对应的jar包,比起那些要5分,然后下下来P都没有的要实惠多了。自己也是新研究的,希望能和大家一起讨论分享
Xmodem和Ymodem 传输协议JAVA实现
使用netty进行rtsp服务端开发 一个使用netty写的rtsp服务器。 目前支持H264、H265、 AAC格式的流文件上传与存储。 H264、H265、AAC格式流文件的播放
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
netty案例,netty4.1中级拓展篇三《Netty传输Java对象》源码 https://mp.weixin.qq.com/s?__biz=MzIxMDAwMDAxMw==&mid=2650724806&idx=1&sn=bb986119b9cdd950e2e6d995295e7f06&scene=19#wechat_redirect
在使用netty进行网络通信协议传输使用protobuf时protobuf编译.proto文件生成JAVA类.zip 包括测试proto3.proto文件,自动protobuf编译.proto文件生成JAVA类
java-Kcp 基于netty版本实现的kcp(包含fec功能的实现) KCP是一个基于udp的快速可靠协议(rudp),能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。 maven地址: ...
文件传输基于netty实现的文件上传下载(简单的个人云盘)发布: : : upload? ***下载: : : *** config.NettyServerConfig中可以设置上传下载的端口号,文件的目录,访问的密码(passwd)打成jar包执行的时候,...
NettyFileTransfer 基于Netty的文件传输程序,方便与其他系统的集成
Netty是Java世界知名的网络应用框架。本系列文章是Netty的源码导读。