Android 無法收到socket訊息

发布于 2021-11-24 09:53:46 字数 1028 浏览 927 评论 5

大家好

我想用一個子thread不斷檢查是否有從server來的訊息

寫法如下

reader = new BufferedReader(new InputStreamReader(mSocket.getInputStream()));
new Thread(){  
    public void run() {  
        String msg = null;  
        try {
            while ((msg = reader.readLine()) != null) {  
                Message msgH = msgHandler.obtainMessage();  
                msgH.what = 1;  
                msgH.sendToTarget();}
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }  
        } 
     }.start();

已經確認SOCKET已經連線

寫簡單的腳本去測試之後確認Server是會丟訊息出來的

就是目前的code沒辦法達成我像要的效果

while ((msg = reader.readLine()) != null)
這行之後的東西都跑不到

有什麼辦法可以讓我一收到Server的訊息就執行while迴圈中的那三行呢?

謝謝



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

网名女生简单气质 2021-11-29 09:48:10

网络操作请也放在新线程里面

彼岸花ソ最美的依靠 2021-11-29 09:37:14

请用字节流去读取。  你服务器端用的是字节流还是字符流?

彩扇题诗 2021-11-29 09:07:59

有的 應該不是這個問題

不乱于心 2021-11-27 18:21:21

回复
目前你粘出的代码,只能看出来这么多,readLine() 一定会等到 socket 收到一个换行符才会返回,所以你会看到后面的代码没有执行。

反话 2021-11-25 12:42:08

你用 readLine() 的话,服务端发出的数据是否包括了换行符(n)?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文