开发者社区> 问答> 正文

手机端用socket通信接收服务器端的发送的数据,利用handler更新在界面,但现在显示不了数据,不知道代码哪里出问题了。

服务器端用java语言,功能是键盘录入数据,然后用socket发送给安卓手机端。客户端是android程序,当运行服务器键盘输入一个数据后,在手机程序上显示不了,不知道问题出在哪里。希望各位精通这方面的给解答一下代码哪里出现问题了。

    服务器端的java代码 
public class chutian {
          public static void main(String[] args) throws IOException
         {

                  ServerSocket ss=new ServerSocket(30000);
                  Socket s=ss.accept();   //阻塞式
                  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                  BufferedWriter bw=new BufferedWriter(new OutputStreamWriter
                                      (s.getOutputStream()));
                  String line=null;
                  while ((line=br.readLine())!=null){       //阻塞式
                           if ("over".equals(line)) {
                           break;
                           }
                           bw.write(line);
                           bw.newLine();
                           bw.flush();
                 }
                 s.close();
          }
 }
      下面是androidDemo 
public class MainActivity extends Activity {
            EditText show;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_main);
                    show=(EditText) findViewById(R.id.et1);
                    final Handler handler=new Handler()
                    {
                           public void handleMessage(Message msg)
                           {
                                   if (msg.what==0x123) {
                                          show.setText(msg.obj.toString());
                                   }
                           }
                   };
                   new Thread()
                   {
                           public void run()
                           { 

                               try{ 

                                        Message msg=new Message();
                                         msg.what=0x123;
                                         Socket socket = new Socket("192.168.0.104",30000);
                                         BufferedReader br = new BufferedReader(
                                                        new InputStreamReader(socket.getInputStream()));
                                         String line=null;
                                         while ((line=br.readLine())!=null) {
                                                 msg.obj=line;
                                                 handler.sendMessage(msg);
                                         } 
                                         br.close();
                                         socket.close();
                                         }catch(IOException d){
                                                d.printStackTrace();
                                         } 
                                }
                      }.start();
            }
 }

展开
收起
爵霸 2016-06-02 09:29:30 3052 0
1 条回答
写回答
取消 提交回答
  • 一步步排错,先保证客户端收到了消息,在确定为什么没有显示出来

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

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS快储存加密技术 立即下载