小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 6400|回复: 5

android socket通信

[复制链接]
发表于 2012-7-16 09:08:47 | 显示全部楼层 |阅读模式
进行android手机与服务器的socket通信时 ,我已经实现将android手机下按钮所触发的信息发给服务器,但是怎么将服务器的信息传到手机?求助。。
回复

使用道具 举报

发表于 2012-7-16 21:19:30 | 显示全部楼层
沙发坐了
回复 支持 反对

使用道具 举报

发表于 2012-7-16 23:41:11 | 显示全部楼层
socket通信是双向的,你可以考虑异步方式,不停地读取流中的数据。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-18 15:54:22 | 显示全部楼层
谢谢,我再试一下吧
回复 支持 反对

使用道具 举报

发表于 2012-9-16 13:48:07 | 显示全部楼层
1608856815 发表于 2012-7-18 15:54
谢谢,我再试一下吧

求问  我和一样的问题 不知道你做的怎么样了  能教教我不
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-7 19:53:54 | 显示全部楼层
我已经做出来了,就是另外开启一个线程,处理接收到的信息。一些关键代码如下:
mThread= new Thread(mRunnable);//通过Runnable接口创建线程
        mThread.start();//开启线程

private Runnable mRunnable = new Runnable()//创建线程处理传来的信息
    {
            public void run()
            {
                    while (true)   //控制run方法中的循环条件来控制线程的终止,这里是个 死循环,意味着此线程将一直运行
                    {
                            try
                            {
                                    if((msg=br.readLine())!=null)
                                    {
                                            mHandler.sendMessage(mHandler.obtainMessage());
                                    }
                            }
                            catch(Exception e)
                            {
                                    Log.e(TAG,e.toString());
                            }
                    }
            }
    };

    Handler mHandler=new Handler()//处理传来的信息
    {
            public void handleMessage( Message Msg)
            {
                    super.handleMessage(Msg);
                    try
                    {
                            textview2.setText(msg);//我是将从服务器传来的信息实时更新显示到文本框中
                    }
                    catch(Exception e)
                    {
                            Log.e(TAG,e.toString());
                    }
            }
    };
    当然这些前提是已经建立socket连接了,那些代码我就没写了。还要注意必须在xml文件中声明以下代码:
<uses-permission android:name="android.permission.INTERNET">  
        </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
        </uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

我开始在这里只声明了3个,结果数据就不能回传,后来加了一个,就可以了。你试试吧,看能不能行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-4-28 13:37 , Processed in 1.077856 second(s), 18 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表