Giter Club home page Giter Club logo

kuaichuan's Introduction

KuaiChuan(仿茄子快传)

English

仿茄子快传的一款文件传输应用, 涉及到Socket通信,包括TCP,UDP通信。(喜欢的给一个star, 有帮助的给一个fork, 欢迎Star和Fork ^_^)

下载 点击下载去下载应用。

效果预览

主页

Alt text

文件发送端

Alt text Alt text Alt text

文件接收端

Alt text Alt text

网页传(20161218新增)

Alt text

Alt text Alt text

原理

快传有两种方式可以传输文件:

  1. Android应用端发送到Android应用端(必须安装应用)
  2. 通过Web浏览器来实现文件的传送 (不必安装应用)

第一种方式主要是是通过设备间发送文件。 文件传输在文件发送端或者是文件接收端通过自定义协议的Socket通信来实现。由于文件接收方和文件发送方都要有文件的缩略图,这里采用了header + body的自定义协议, header部分包括了文件的信息(长度,大小,缩略图), body部分就是文件。

第二种方式主要是在android应用端架设微型Http服务器来实现文件的传输。这里可以用ftp来实现,为什么不用ftp呢?因为没有缩略图,这是重点!

测试

(必须在真机下测试) 在Android测试机 分别是 魅蓝2 与 华为 SCL-TL00, Vivo xs1 运行正常

感谢

google: http://www.google.com

stackoverflow http://stackoverflow.com/

版本

v1.0

完成了Android端到Android端的文件传输

v1.1

完成了网页传模块的功能

issue

QQ:345269374

Email:[email protected]

License

Copyright 2016 mayubao

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

kuaichuan's People

Contributors

mayubao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kuaichuan's Issues

小米 8.0黑屏卡死

小米note5 8.0,无论是做接收端还是发送端,只要从Navigation用intent跳转进FileSenderAvtivity或FileReceiverActivity都会黑屏卡死,log是not whitelist,荣耀6plus 6.0没这个问题

传输失败

小米6,android8.0.0发送文件。小米4Sandroid7.0接收文件,两个都失败。然后还有在返回的时候卡死

请问每发送一个文件就去建立一次Socket连接会不会在很大程度上影响文件传输的速度?

阅读完你部分代码后我有个问题想要请教一下,就是在使用socket进行文件传输的时候为什么不直接将所有的文件通过一次socket连接进行全部传输?既然已经制定了传输协议这样做完全是可行的啊,这一点我在阅读你代码的时候很困惑,于是就引出了我在书写代码的时候遇到的一个问题:
在写socket传输多个文件代码的时候遇到了一点问题,凑这个机会请教你一下。客户端和服务端只建立一次连接,发送端将所有要传输的文件全部发送出去,然后服务端根据指制定的协议对文件进行解析从而将受到的字节序列拆分成一个个的文件。当发送一组文件时当单个文件的大小不是特别大的时候,文件可以正常传输,这里可以说明【头信息的拆分,文件部分的解析的代码不存在问题】,但是当包含特别大的文件的时候,比如说一部电影,在传输的时候就会出现文件header信息部分解析不完整,或者解析到内容根本不是之前计算好的那部分字节,这样就导致文件没办法正常接收造成文件传输失败。这个问题已经连续困扰我两天了,一直找不到解决的办法,难道socket在传输的过程中会丢包?tcp是面向连接的啊。
我相信你的代码这么写一定是有原因的,请指教?

android6.0传输异常

两台android6.0真机,开启热点接收文件,发送端点击发送文件,发送端有时会报SocketException,传输就中断了,测试了6次,只有一次传输成功

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.