安卓 Socket通信,Socket连接不上,程序就在真机崩溃但在模拟器上正常

class ReceiveData extends Thread
{
int i=1;
private void reconnect( )
{
Log.i("第"+i+"次连接","reconnect刚开始执行");

            try {
                Log.i("第"+i+"次连接","Socket之前");
                Socket s=new Socket("192.168.0.103",40011);
                Log.i("第"+i+"次连接","Socket之后");
                InputStream ins=s.getInputStream();
                Log.i("第"+i+"次连接","InputStream之后");
                BufferedReader br=new BufferedReader(new InputStreamReader(ins));
                String data=null;
                Log.i("第"+i+"次连接","br之后");
                i++;
                while((data=br.readLine())!=null)
                {
                    String[] datas=data.split(",");
                    Log.i("第"+i+"次连接","datas之后");
                    int dianping=Integer.parseInt(datas[0]);
                    int zhiliang=Integer.parseInt(datas[1]);
                    float jueduijiaodu=Float.parseFloat(datas[2]);
                    float xiangduijiaodu=Float.parseFloat(datas[3]);
                   // hcs.refresh(dianping,zhiliang);
                    vcs.refresh(dianping,zhiliang );
                    disks.refresh(xiangduijiaodu, jueduijiaodu, dianping, zhiliang);
                    cuslinear.refresh(jueduijiaodu, xiangduijiaodu, dianping, zhiliang);
                }
            }catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Log.i("第"+i+"次连接","可能没连接上");
                reconnect();
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
        public void run()
        {
          reconnect();
        }
    }

在客户端的一个Activity中,启动以上线程用来接收数据,当IP地址不对时,当然也就连通不了,于是抛出异常,再重新reconnect( ) (应该没有什么问题吧?),但是在真机上反复出现几次 CSDN移动问答

1: http://www.eoeandroid.com/data/attachment/forum/201403/28/141758f958x35x1733zhqp.jpg 后(大约7、8秒钟的时间,而且不会其他那几条的输出,这个我懂,因为socket没建成,于是try语句块中Socket s=new Socket("192.168.0.103",40011)后的语句就不会再执行了),该Activity就会崩溃,返回到上一个Activity,而且貌似说有内存溢出问题
CSDN移动问答

而在模拟器上却不会出现这个问题。如果IP地址正确,连通了,能够正常接收数据了,也不会出现这个问题。这到底是怎么回事呢?

0

1个回答

是不是太占用资源了?

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android socket通信 真机io错误 模拟器正常的原因
============================================================================================================= 从网上找了个例子,没有设置wifi时程序正常,pc上运行java程序作为服务器,模拟器上运行java作为客户端,服务器ip为pc的ip。 pc系统为windows7
Android socket 与电脑服务器通信 模拟机上可以访问 手机上不能访问
本人因需要做一个手机与电脑通信的app,先做了一个小例子测试一下,在模拟机上可以访问电脑服务器,手机上就连不上,上网查了很多办法: 1.增加app中上网权限 2.关闭电脑防火墙 3.使用无线路由,电脑和手机都连接无线路由,处于同一网段 等等,这些都不行,还是连不上。 最后,将manifest中的android:minSdkVersion值改的小点儿,我改为8,ok,连接上了。...
关于Android使用socket与PC连接的问题
模拟器上能运行,真机上运行不了,这个问题一直困扰了我很久了。后来发现其实是很简单的一个道理~
iOS模拟器运行正常,真机测试直接崩溃
最近遇到一个很的问题,模拟器没有问题,手机跑直接崩溃,相应库文件没有加载,可明明已经加载,崩溃原因如下图 看了一些文档,大都是说将Xcode,clean一下,重新编译,但还是未能解决,不过最终还是找到了解决方法,那就是在钥匙串里将项目里对应的证书做一下设置,出现上图在真机运行直接崩溃的的原因是证书设置为始终信任,如下图 现在只需要修改一下即可解决在模拟器运行正常,在真机直接崩溃的问
应用程序可以在模拟器运行但不能在真机运行的解决方法
如果你的App可以正常运行在你的模拟器,但是运行在真机的时候却抛出这样的问题:Installation failed with message null. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-in
两个安卓模拟器进行Socket通信 — TCP方式
在一台电脑上,进行两个安卓模拟器的Socket通信时,因为host都是127.0.0.1,所以连接一直失败。 解决方法: 1、运行服务端模拟器,端口配置为8880 2、客户端模拟器,host配置为10.0.2.2,端口配置为8881 在终端执行命令: adb -s emulator-5554 forward tcp:8881 tcp:8880 它会将 8881 端口的数据全部重定向到 8880 ...
Android开发——本机Tomcat搭建服务器,客户端socket网络连接不上问题以及D-LINK端口转发设置
我是用自己的电脑搭建服务器,首先问题是我们需要在路由器上端口映射,外网才能访问到自己的电脑,如何端口映射可以看看这篇文章: http://blog.csdn.net/zhoubin1992/article/details/45917775 一、D-LINK端口转发设置 我的是D-link如图: 名称写你客户端的名称。 IP地址:路由器给本机分配的IP地址,一般以192.168
安卓6.0以后,socket连接失败的原因
老早以前的项目要适配安卓7.0的平板电脑 - 信心满满的以为无缝适配,结果使用nio的socketchannel连接tcpserver时,一直连接失败,而同样的程序在5.0的安卓平板上就秒连,纳闷了,开始无头苍蝇似的乱撞,直接用socket也失败。 后来看到一个前辈的socket连接代码,connect之前调用了Thread.sleep方法睡了1000ms 抱着试一试的心态,在connec...
apk在真机上运行正常,在模拟器上崩溃
最近的一个测试apk,在真机上运行一切正常,但是到了模拟器上一开应用就崩溃,看错误日志也找不到什么头绪,后来看下了引用的so库,发现有x86的,于是把x86的so库加入编译,再到模拟器上运行,就正常了。 android studio中,在gradle里的abiFilters内加入x86即可。 大概原理是: 模拟器一般都是x86架构,所以如果工程有so库的,需要加载x86的so库;而真
android兼容 -- socket通信--接口在某个手机可正常访问但是连接出错
拿登录接口举例 我平时测试用的手机 android4.4 华为荣耀6plus 可正常登录 今天用同事的手机 android5.0 vivo X5pro android5.0 正确输入用户名,密码,显示用户名和密码不匹配   1.断点调试和打印发现,获取的信息都是正确的 2.为了防止空格误导,已经使用了trim() 3.最后没办法了,直接在代码里面把账号密码写上去,还是显示用户名和密
android socket通讯,PC和模拟器,两个模拟器之间的通信
我已经试验成功:  ps:模拟器做服务器,PC机做客户端。如果通过wifi连接的话直接访问IP就行,不用重定向。       PC访问模拟器用localhost即127.0.0.1, 模拟器 访问 模拟器用10.0.2.2       本人已成功运行,看你的RP了- - server:   Java代码   /**   * Server.ja
解决Android模拟器(客户端)与PC(服务器端)之间的socket通信
1、创建一个模拟器([color=red]API level小于等于10[/color],当时选择了很多模拟器,只有模拟器的android版本较低时,可以测试通,具体原因也不知道为什么),建立模拟器的截图如下: [img]http://dl2.iteye.com/upload/attachment/0095/7179/2efb9e83-a798-34f0-afaa-edb19dfc0f65.pn...
Android 使用socket实现两个真机之间的通信
1、使用Socket进行两个手机之间的通信需要安装两个不同的代码文件:服务端和客户端   分别进行安装2、创建局域网:两个手机同时连一个WiFi或者两个手机进行热点和WLAN连接3、客户端连接另一个手机IP时把另一个手机的IP改成静态IP(3的第二种方法做这个步骤)下面上代码分客户端的和服务端的,布局文件textview、Editview、Button不上代码了,不懂socket通信原理的可以在百...
Android 7.0 连接socket连不上,8.0却没问题(cocos create)
一般出现这个问题,无非就是端口冲突,打包环境,ndk版本太低。。。  这些应该不是问题,主要问题还是下面   socket 版本降到1.x,app abi 选 armeabi-v7a 和 arm64-v8a,许多高端机CPU是arm64-v8的  一般这两样就能解决80%的socket链接不上的问题了    ...
开发中,模拟器网络请求成功,真机网络请求失败
这个问题主要原因是我们后台开发人员,给我们技术部配置了hosts文件,我们通过域名来访问服务器,所以只能模拟器可以请求成功,真机失败Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没...
android apk文件在模拟器上运行正常,在真机中出现解析包错误解决办法集锦
本文出自:http://blog.csdn.net/hongchangfirst      这几天遇到了这样的问题,如果你确定不是apk文件本身错误或是不完整的话,有以下解决办法可供参考:       1. 用sd卡作为保存地来安装,而不用机器内置存储。     2. 真机android版本比应用程序版本低。     3. 在手机程序菜单中点 “设置”进入,然后点击“应用程序”选项, 在
Android 使用socket实现两个真机之间的通信
1、使用Socket进行两个手机之间的通信需要安装两个不同的代码文件:服务端和客户端 分别进行安装 2、创建局域网:两个手机同时连一个WiFi或者两个手机进行热点和WLAN连接 3、客户端连接另一个手机IP时把另一个手机的IP改成静态IP(3的第二种方法做这个步骤) 下面上代码分客户端的和服务端的,布局文件textview、Editview、Button不上代码了,不懂socket通信原...
android模拟器与pc,模拟器与模拟之间用socket进行通信和获得模拟器ip地址程序...
        在本机上启动两个模拟器,本机(PC)和模拟器的信息如下:         大家可以看到,两个模拟器的IP地址都是完全一样的,所以要实现两个模拟器之间的通信,使用模拟器的IP地址是办不到的。         获取模拟器名称:         >adb devices         List of devices attached         emulator-5...
关于如何在同一台电脑上的两个安卓模拟器之间的socket通信(图片传输)
最近课程学习中,遇到了这个问题。 网上搜了一大堆,基本都是抄来抄去的。 即使自己写的,说的也不是很完全。自己第一次用安卓开发,也走了很多弯路。所以写下这篇博客,希望初学者可以少走弯路。本文讲的都是很基础的东西。保证初学者按照步骤来,可以run成功。 开发环境使用的Eclispe,Android SDK 4.2. 开发环境如何搭建就不赘述了。网上太多了。。 课程要求的是在同一台电脑上运行两个AV
小程序模拟器没问题,但在真机上样式错乱,这个要怎么解决?
在开发工具上面有个远程调试,用对应有问题的手机扫码,调试代码可以发现问题!昨天就是通过这个找到问题的!很有帮助
Android用模拟器测试TCP连接失败问题
最近做app用mumu做的TCP测试但是就是连不上电脑,查了一下发现是电脑和模拟器的通信问题。具体转载一位大佬的博客: https://www.cnblogs.com/ioter/articles/3733300.html 作者:IOTer PC电脑和Android模拟器访问及模拟器之间tcp/udp通信 Android系统默认只能通过IP(10.0.2.2)单向访问PC电脑,而PC电脑不能...
iphone真机无法显示图片,而模拟器可以正常显示
可能,很多开发IOS程序的遇到过在模拟器里,加载图片都是正常的,但是在真机里就会出现图片资源不能加载的问题。 其实原因很简单,在Simulator里面,例如:图片资源名称为:a.PNG,在代码你里,你引用的是a.png,这样的代码,在Simulator中运行完全不会有问题,但是到真机里面,你就会发现,在模拟器里面好好的资源为什么在真机里面显示不出来,主要原因就是:你的引用名和文件名不符合。在
安卓开发中关于Listview中的图片在虚拟机上显示正常,在真机上显示不出来的问题的解决方案
今天做程序,用listview显示一系列图片、文字等信息,遇到了这个问题,记录一下。如下图所示:解决方法:将删除即可。至于为什么不让设置这个属性,目前还不太清楚……运行结果如下图:...
android 模拟器和电脑服务器端用socket通讯
之前一直会用sockets来实现emulator和PC进行通讯,卡了几天,最后请教其他人终于可以连接了。  错误原因是在IP和端口,IP要用本机IP(在CMD输入ipconfig,注意:每次开机本机IP都不同,ADSL是动态IP),端口用emulator的名称,5554或5556.java sever文件要另外建java工程运行,在android工程运行不了java(run application
nginx 微信小程序 wss ws 开发工具可以连接 socket 真机不行
今天NGINX部署小程序 socket 时,碰到的奇怪问题 nginx 部署完成后 微信小程序 wss:// 访问,然后可以正常连接和数据的推拉 但是只要预览到真机上,socket 就连接不成功 一波查找 最后定位出来的问题是: wss 是安全连接协议,是需要有证书支持的 微信小程序 socket wss 而我在 nginx 上没有配置 ssl 估计在开发...
Android Studio模拟器或者手机连接不上
      在做手机安卓开发实验的时候,有时候会出现Android Studio模拟器启动不了或者手机连接不上的情况.            启动Android Stdio的时候报如下错误:             其实原因很简单,因为5037端口被占用了,所以解决方法就有了,即找到正在占用端口5037的进程 , 把它清理掉就好了...
安卓用http网络访问在模拟器上没问题到真机上测试挂掉解决办法!
最近在做一个数据上传的app,在真
微信小程序关于Canvas图片,模拟机上显示,真机上不显示问题
最近公司在做小程序开发,其中有个需求是保存图片到用户相册。大概意思是一张图片有本人头像,本人排名,本人姓名,关注小程序的二维码,需要用户授权,然后保存到用户相册。好,不多逼逼,就是这样的一张图。 image.png 就在所有都搞定,模拟机上测试也完美显示的时候,在真机上测试这张canvas图片怎么也不显示。在网上查了好久,综合好几个人的解决方...
android真机运行闪退问题
两个步骤: 第一:确定自己setting->build->instant里面不要勾选instant 第二:如果你已经确认自己的设置没错,特别是以前用真机运行成功的,问题一定在你的代码上,看看你你关于各个组件的声明是否有误,问题一定在代码,可以设置断点测试自己的代码,检查问题出在哪里 希望能帮到你,共同学习。 ...
模拟器之间的Socket通讯
http://www.cnblogs.com/shaocm/p/3517031.html android项目最近开始用到socket通讯,而2个模拟器之间通讯需要借助ADB实现,这里了解下ADB。 ADB是什么: ADB的全称为Android Debug Bridge,就是调试桥的作用,借助这个工具,我们可以管理设备或手机模拟器的状态。个人理解就是可以在pc上通过命令行查看和管理安卓设备,例
Android模拟器或者真机无法连接内网的解决方案(当需要修改hosts的时候)
不管测试机还是模拟器,访问不到内网地址时,很可能是电脑上修改hosts了,但是模拟器和测试机没有修改hosts. 模拟器修改hosts 使用adb命令修改hosts: 1.先root. 执行命令: adb root 2.设置为可更改用户账户. adb remount 3.在android studio中用device file explorer 找到hosts文件( 路径为:
iOS模拟器运行没问题真机测试报link错误
使用模拟器运行时,可以运行,效果很好,但使用真机测试就报错了,错误信息如下: clang: error: linker command failed with exit code 1 (use -v to see invocation)1 错误提示:  You must rebuild it with bitcode enabled (Xcode setting ENABLE_B
Android Studio模拟器和真机调试解决问题
将adb.exe等文件复制到SyWow64,System32 真机: 连接上后,安装驱动程序 cmd中输入adb devices检测设备 如果没配置好,cmd输入adb start-server会出现: *deamon not running ...5037 端口被占用的提示 并且输入adb devices会出现List...attached为空的情况 模拟器和真机app闪退: 发...
微信小程序中,真机和模拟器效果不一样
问题:有时候,在模拟器上UI效果显示正常,但是在android上显示的UI布局就乱了。这其中一种可能是因为父组件设置了属性 box-sizing: border-box;子组件加起来的宽度超过了父组件的宽度,从而导致显示的效果是:父组件还是正常显示在原来设定的位置上,而子组件则往下移动了,导致UI变乱。按照常理,当子组件的宽度大于父组件的宽度,会把父容器这个盒子给撑大,但是在微信小程序中,父容器还...
vc socket在debug模式下可以正常通讯,在release模式下经常通讯失败
问题描述:前一段时间写了一个基于socket的网络程序(B/S模式,应答通讯),使用的是MFC的异步socket类(CAsyncSocket),debug模式下可以正常通讯,打包发布后发现通讯总是失败,在网上查到的资料是debug模式和release模式,只有在编译诊断,和编译效率上有区别。后来借助网络调试助手查看传输数据并调试程序,逐渐缩小了问题范围: m_pMySocket->Connect
解决Android Studio连不上Android设备真机的问题
解决AndroidStudio连不上Android设备真机的问题 Android手机开发Android应用的时候,需要连接真机,进行应用软件的真机调试,但是由于诸多原因,可能导致无法与实现连接: 在我们连接了Android设备出现上面这种情况的时候,可以打开设备管理器,如果看到如下图的情况: 出现一个带感叹号的“ADB Interface”这种情况下,我们基本可以判断是usb驱动没有...
APP自动化(2)——Appium 启动服务并连接模拟器和真机方案
如果你已经搭建好Appium的环境后,接下来想对一款APP的进行自动化测试的话。那么首先得让appium连接你的模拟器或者真机。才能开展测试。本文尝试用不同的方式搭建连接。以适应不同人群的选择。希望有一种方法能够适合你。1、Appium连接sdk中的模拟器了解android的人都在知道,android sdk中自带AVD Manager(Android Virtual Device Manager)
android模拟器实现socket通信
android模拟器 特殊ip10.0.2.2等同于本机127.0.0.1 服务器 ServerSocket serverSocket = new ServerSocket(6000); 客户端Socket socket = new Socket("10.0.2.2", 5000); 打开两个模拟器 The Server program will open the port 6
Unity 接入Android SDK导致游戏在模拟器中崩溃(竖屏游戏)
        前段时间接入sdk之后,发现游戏在真机中运行正常,但是在模拟器中运行游戏莫名崩溃,于是猜测是sdk导致的。今天有时间来专门找问题所在。        方法:新建工程A,原始工程B。把B工程下的plugins文件夹导入A工程,打包a.apk发现模拟器可以运行。原始工程B,删除除了plugins之外的所有文件夹,打包b.apk发现模拟器还是崩溃。于是推测可能2个工程的工程设置不同,可能...
Android 与 PC 之间的通信
当PC与手机连通时,我们可以通过Socket连接来实现PC与手机间的通信。   这里我们先讨论手机做为Server端、PC做为Client端的情况。   和其他Java Socket程序一样,只需要定义一个SocketServer即可实现Server端的监听,如下:   ServerSocket serverSocket = new ServerSocket(SOCKET_POR...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据上的机器学习 大数据平台上的深度学习