android端作为服务器与其他设备通讯记录总结

android的app作为服务端首先其实要考虑保活的问题,但是这个暂不考虑,程序挂了就通讯不上了,再重新打开就是了,经过测试,在启动server之后让app进入后台,程序还是可以存活几个小时的(没有测试更长的时间,注意,这是在不开其他app的情况下,在开其他app的情况下有时进程会被kill)。

这里的通讯主要是在电脑端通过curl发送命令(url),然后android端处理数据并返回结果。

curl是利用URL语法在命令行方式下工作的开源文件传输工具。

这里我下载的是window下可执行程序curl,是在一个人分享到网盘的。在官网我没有找到可执行的curl,只找到了源码(要编译的)。虽然下面有人家的window端的下载链接,但是我之前没有找到(后面终于找到了)。

进这个网站

https://curl.haxx.se/download.html

一直往下拖。下这个。

这是盗图的

我是win7  64位,因此使用I386下的curl.exe工具。

cmd进入控制台,然后通过cd命令进入到curl.exe所在的目录。

进入到该目录后,执行curl --help测试。

这是盗图的

出现这些信息就表示curl可用。

试试输入这个,看是否能正常通讯。

curl https://www.baidu.com/

至此,curl可用,下面开始设置服务端。


git上有一些开源库可以用Nanohttpd、AndServer。

我之前用的Nanohttpd好像有点问题后来就弃用了(应该是我的锅。不过我还是感觉这个是用于java的我,因为我记得运行sample响应ok,但是上传文件好像有点问题,缺乏某些类),然后就用了AndServer。

AndServer地址:

https://github.com/yanzhenjie/AndServer

通过运行sample可以大致了解通讯的过程。

至于具体怎么添加到自己的项目中,在gradle中添加依赖,然后将sample中的代码copy到自己的项目中即可。

compile'com.yanzhenjie:andserver:1.0.3'

app运行之后,打开server,然后就可以进行通讯了。

比如,上传,命令如下:

curl -F "filename=@你好.txt" http://192.168.3.169:8080/upload

192.168.3.169是android设备的ip地址,8080是端口号。(本质是socket通讯?这方面我没有深入了解,http通讯?)


在测试上传功能过程中发现一个问题,包含中文字符的文件名传输到android端之后显示的是乱码(英文则不会出现此问题)。

上传文件默认保存在sdcard目录下。

解决方法:

在RequestUploadHandler类中设置传输的格式,具体代码:

fileUpload.setHeaderEncoding("gbk");


然后进行格式转换之后才能得到正确的中文字。

String s =newString(fileItem.getName().getBytes(),"UTF-8");

上传成功后会返回ok。

格式不一致然后导致了乱码(具体原因待分析,这是我偶然尝试上传gbk格式的中文然后发现此时android设备中的文件名没有乱码发现的)。


关于登录,demo中默认账号和密码为123。

if("123".equals(userName) &&"123".equals(password)) 

因此,发送命令。

curl -d "userName=123&password=123" http://192.168.3.169:8080/login



参考链接:

windows(64位)下使用curl命令

http://blog.csdn.net/wangchao729251283/article/details/54628826

Curl windows下载地址

http://blog.csdn.net/hongweigg/article/details/51728220


android充当server服务器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,858评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,066评论 4 62
  • 明天必定来临 (原发凯迪文化散论) 任何力量也无法阻挡 明天的来临 犹如江河奔向大海 任何障碍都不能遏止 奔腾的渴...
    临风而立tr阅读 226评论 2 5
  • 我的一个朋友失恋了,这一次是彻底的失恋了。似乎,再没了挽回的余地。 这一天的天气是阴暗的,上海的天空中还飘着雨。我...
    琦纳笙阅读 831评论 0 0