android java Socket多文件发送
来源:互联网 发布:网络交换机机柜 编辑:程序博客网 时间:2024/05/08 14:03
android java Socket多文件发送
- for (int i =0;i <files.length; i++) {
- byte[] namebyte = files[i].getName().getBytes("UTF-8");
- long size =files[i].length();
- int nameLength = namebyte.length;
- fileChannel =new FileInputStream(files[i]).getChannel();
- ByteBuffer buffer =ByteBuffer.allocate(1024);
- buffer.clear();
- buffer.putInt(4+8+nameLength);
- buffer.putInt(nameLength);
- buffer.put(namebyte);
- buffer.putLong(size);
- buffer.flip();
- while(buffer.hasRemaining()){
- sc.write(buffer);
- }
- long count = 1024*1024;
- long read =0L;
- while(read < size){
- if(size - read <count)
- count = size - read;
- read += fileChannel.transferTo(0+read, count, sc);
- System.out.println("read:"+read);
- }
- fileChannel.close();
- if(i < files.length -1){
- sc.write(ByteBuffer.wrap(new byte[]{1}));
- System.out.println(1);
- }
- else
- sc.write(ByteBuffer.wrap(new byte[]{0}));
- }
接收方核心代码,由于发送的时候文件的信息,如:文件名和文件大小是分开发送的,所以接收的时候也是分开接收的,多个文件的时候接收方式一个一个接收的。
- private void parseHead(int headlength) {
- buffer = ByteBuffer.allocate(headlength);
- try {
- while(buffer.position() < buffer.capacity())
- clientChannel.read(buffer);
- buffer.flip();
- byte[] filenamebyte =new byte[buffer.getInt()];
- buffer.get(filenamebyte);
- fileName =new String(filenamebyte,"UTF-8");
- fileSize = buffer.getLong();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void parseBody(long size) {
- long read = 0L;
- long count = 8192;
- FileChannel fileChannel =null;
- try {
- fileChannel =new FileOutputStream(path + fileName)
- .getChannel();
- System.out.println(fileName);
- while (read < size) {
- if (size - read <count)
- count = size - read;
- read += fileChannel
- .transferFrom(clientChannel, 0 + read, count);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }finally{
- try {
- fileChannel.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
好了,希望对你有所帮助,有事去了。不行的话留下邮箱,我发送源码给你。
0 0
- android java Socket多文件发送
- android java Socket多文件发送
- java socket 发送文件
- java socket 发送文件
- java,利用一个socket发送多个文件
- java socket 发送接收文件实例
- 用JAVA SOCKET发送和接收文件
- java socket实现文件的发送接收
- 用JAVA SOCKET发送和接收文件
- 用JAVA SOCKET发送和接收文件
- 利用java Socket发送,接收文件.
- 用JAVA SOCKET发送和接收文件
- Java实现Socket发送和接收文件
- java android Socket通信 发送以及接受
- Socket断点发送文件
- socket 发送文件
- SOCKET发送文件
- socket发送文件
- arithmetic coding
- “西北王”胡宗南:苦等七年娶了戴笠情人
- 软件工程的七条基本原理是?
- 如何提高应用程序性能
- Java设计模式之起始
- android java Socket多文件发送
- C#高效编程话题集1(每期10话题)
- iOS开发-ASIHTTPRequest类库简介和使用说明
- 收集数据能帮我们解决未来的问题,才叫大数据
- 编译个性化的OPENWRT固件(openWRT源码修改)
- 【短信】谷歌4.4短信在eclipse的编译过程
- Redis 主从复制
- 用java实现修改系统的环境变量并使其不需重启就生效
- wampserver配置同一个IP不同端口的虚拟主机