开发者社区> 问答> 正文

android 中socket通信

private Button send;
 private TextView rec;
 private static Socket client;
 private boolean result=false;
 private int a=0;
 private PrintWriter write;
 private static BufferedReader read;
 public static int ac=0;
 private InputStream input;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 rec=(TextView)findViewById(R.id.textView1);;
 Thread aa=new Thread(new Runnable() {
            @Override
            public void run() {
                // TODO Auto-generated method stub
                 try {
                     //服务器的ip的地址 和端口号
                        client=new Socket(InetAddress.getByName("192.168.1.101"),4312);
                        read=new BufferedReader
                        (new InputStreamReader(client .getInputStream()));              
                        result=true;
                        a=1;                  
                        rec.setText("123");        
                     } 
                    catch(IOException e){ 
                        result=false;rec.setText("错误");
                    }   
                 finally{
                     a=1;
                 }
            }
        });
          aa.start();
          while(a==0);

                if(result){
                    String s ="";
                    try{                               
                    s = read.readLine();//执行到这一步就出错         
                     rec.setText("awq");                    

                    }
                    catch(Exception e){rec.setText("出现异常");}


    }
    每当客户端读取数据时就会出现异常,可以发送消息就是读不了怎么回事

展开
收起
爵霸 2016-03-20 11:51:33 2155 0
1 条回答
写回答
取消 提交回答
  • 你在那个run方法里看看能不能读出数据?另外把错误贴出来,同时你的代码在非UI线程里更新了UI,这肯定是会报错的

    2019-07-17 19:09:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载