Android Socket发送信息时闪退

Android Socket发送信息时闪退,第1张

概述尝试Android写Socket通信的时候,遇到的个坑,记录一下: 1、无法建立连接。   原因:没有添加网络使用权限请求;   解决方式:在"AndroidMainfest.xml"中添加<uses-permission android:name="android.permission.INTERNET"/>   2、建立连接后正常接收信息,但发送信息时直接闪退,LogCat中异常提示为:and

尝试AndroID写Socket通信的时候,遇到的个坑,记录一下:

1、无法建立连接。

  原因:没有添加网络使用权限请求;

  解决方式:在"AndroIDMainfest.xml"中添加<uses-permission androID:name="androID.permission.INTERNET"/>

 

2、建立连接后正常接收信息,但发送信息时直接闪退,LogCat中异常提示为:androID.os.networkonmainthreadException

  原因:百度了一圈,发现是在AndroID 7版本后才出现的,对主线程上的一个TCP Socket的写入 *** 作严格检查,也就是不能在主线程中进行Socket写入发送。

  解决方式:新建线程发送。

3、新建发送信息的线程,仍然闪退

  原因:输出流也需要在新建的线程中new一个

成功发送的代码如下

 

new Thread(new Runnable(){                    @OverrIDe                    public voID run() {                        try {                            //输出流写入发送编辑框的信息并指定类型UTF-8,注意要加换行                            String str="TestString";                            if(socket==null) return;                            BuffereDWriter outputStream=new BuffereDWriter(new OutputStreamWriter(socket.getoutputStream()));                            outputStream.write(str);                            //输出流发送至服务器                            outputStream.flush();                        } catch (UnsupportedEnCodingException e) {                            // Todo auto-generated catch block                            e.printstacktrace();                        } catch (IOException e) {                            // Todo auto-generated catch block                            e.printstacktrace();                        }                    }                }).start();
总结

以上是内存溢出为你收集整理的Android Socket发送信息时闪退全部内容,希望文章能够帮你解决Android Socket发送信息时闪退所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存