Android Studio while while循环条件中 socket闪退

安卓 和python 服务端通信安卓收不到垺务端返回

用安卓和python的服务端通过socket进行通信, server端可以接收信息但无法返回到安卓。


在Android开发中经常会需要由服务端主动推送一些消息给客户端,最常见的做法就是用Tcp Socket保持长链接为了简化这个过程,做了一个简单的依赖库来实现TCP Socket的client功能


 
界面完成,关鍵类点名(只点名不解释,详细解释请使用搜索引擎太占篇幅):














以上是构建tcp客户端的关键类,需要明白


客户端比服务器实现简单佷多,下面是实现思路描述:


1、直接使用Socket类通过ip和port创建连接;


2、创建接收与发送使用,超时等资源配置;


3、建立监听while循环条件机制;


4、跳出while循环条件关闭连接。


发送消息则直接使用之前创建的发送资源推送即可不做描述。




在Android开发中经常会需要由服务端主动推送一些消息给客户端,最常见的做法就是用Tcp Socket保持长链接为了简化这个过程,做了一个简单的依赖库来实现TCP Socket的client功能

Step 2.为你的项目添加依賴

以上代码就是创建一个TCP连接最简单的代码了,创建一个TcpClient的实例然后startConn(),就完成啦最简单的Tcp连接啦Of course,这是不够的。所以提供了一些方法来实现更丰满的功能

监听Socket的各个状态以及消息的接受

这里提供了一个简单的listener类,来负责监听Tcp的各個状态

* 发起TCP连接时报出的异常 * 当TCP通道收到消息时执行此回调 * 当TCP消息监听时遇到异常从这里抛出 * 当sendMsg()方法成功执行完毕后,执行此方法 * 发送消息时遇到异常从这里抛出 * 当TCP连接断开时遇到异常,从这里抛出

就是这样通过setTcpSocketListener()方法,添加一个监听就可以很方便的完成socket通讯了。要紸意的是这些方法是异步执行的,可能会引发线程问题需要自己去处理

这里提供了链接断开(不管异常还是主动)后自动重连的方法

设置是否需要断开后重新连接

设置socket断开后重新连接间隔时间 单位 秒

设置socket接收字符的格式,默认”utf-8”非特殊需要不用修改

设置连接的socket服务端口

我要回帖

更多关于 while循环条件 的文章

 

随机推荐