Android 客户端通过tcp/ip与服务端发送、接收消息、下拉列表等功能(JAVA)

参考各种大神分享的资料同时在同时指点下,终于实现了,动态改IP、端口,Android客户端与服务端(采用的网络调试助手)之间互相收发消息。
依靠inputstream 与outputstream 实现数据流的接收与发送。中间以JSON字符串作为数据的传输格式。

添加了滑动开关,以表示连接或者断开网络,目前正在解决,监控连网状态。。。。
在这里插入图片描述
当前已实现的,还有人性化的东西需要继续完善,也有不少问题需要花时间去解决。
防止在Json字符串转换过程出现中文乱码问题在后面加“gbk”.
在这里插入图片描述

Java数据读取时,防止文件中有中文出现乱码的情况,第一、对于字节流读取时,采用(new InputStreamReader(file,编码格式)函数,编码格式采用“gbk”,in = new BufferedReader(new InputStreamReader(
socket.getInputStream(),“gbk”));
第二、对于按字符流读取时,编码格式采用“UTF-8” 的方式。 in = new BufferedReader(new InputStreamReader(
socket.getInputStream(),“UTF-8”));
Android UI添加下拉列表功能:

QT直接有集成的控件,然而Android 没有,网上参考了
https://blog.csdn.net/u013068887/article/details/78294580 此篇博客,并将其添加到本界面中并加以改造,
下拉列表内容是可变的,添加了一个加载按钮当点击时,列表才会生成。因为本界面是基于Socket通信进行收发数据的,
因此,需将选中列表的数据发送给服务端,然后再接收服务端发来的信息, 此篇博主提醒采用eventbus 来实现,已实现了改功能,最终效果与Qt下拉 列表效果一样。
**

EventBus 添加依赖:

**
build.gradle中配置:

dependencies {
......
implementation 'org.greenrobot:eventbus:3.1.1'

一行就配置好了。
使用就是三步:
注册/注销:
注册:EventBus.getDefault().register(this);
注销:EventBus.getDefault().unregister(this);
发布:EventBus.getDefault().post(messageEvent);
接收(包含四种模式):MAIN、POSTING、BACKGROURD、ASYNC
@Subscribe(threadMode = ThreadMode.MAIN)
public void XXX(MessageEvent messageEvent) {

}
处理消息的方法名字可以随便取,但是需要加一个注解@Subscribe,并且要指定线程模型。
具体可参考:https://www.jianshu.com/p/f9ae5691e1bb
https://blog.csdn.net/harvic880925/article/details/40660137

在这里插入图片描述

在这里插入图片描述
新的效果图:(2019.08.13)
以及电脑服务端新功能的添加已完成:按照所要求Excel格式保存缺货记录
同时完成通过modbusTCP协议与车体进行通信****(Modbus4j),控制车体到相应位置,外加控制灯带辅助拣货等功能。
以及输入目标位置转发的服务端,然后发送到车体,使车体运行到目标位置等功能。

在这里插入图片描述
在这里插入图片描述
Android客户端功能基本完成,电脑服务端需对后台数据进行处理,作为手持终端与运动车体之间的信息控制桥梁。
即:手持终端Android客户端与主机服务端(基于socket的TCP/IP )通信,主机与车体之间Modbus TCP通信,主机作为Master,车体作为slave。
未完。。。。。。。
等理清之后继续补充
注:因涉及公司项目,不便公布源码

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值