[問題] Socket接收字串無資料會當機

看板AndroidDev作者 (Up2u)時間9年前 (2016/05/27 18:22), 編輯推噓0(0011)
留言11則, 2人參與, 最新討論串1/1
我開了一個socket連線到ptt 用 in = new BufferedReader (new InputStreamReader(socket.getInputStream())); 然後用一個button讀取字串 in.readLine(); 但是button按了幾次之後 就會當機, 我猜可能是沒有資料之後才會發生 我另外又試了兩個方法,也是不行 if ((charsRead = in.read(buffer)) != -1) { message += new String(buffer).substring(0, charsRead); } in2 = new DataInputStream(this.socket.getInputStream()); in2.readUTF(); 完整code http://ideone.com/FrEGVN 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.236.12 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1464344524.A.769.html

05/27 20:28, , 1F

05/28 01:25, , 2F
ByteArrayOutputStream resultStream = new Byte....();
05/28 01:25, 2F

05/28 01:25, , 3F
byte[] buffer = new byte[128];
05/28 01:25, 3F

05/28 01:26, , 4F
for(int read;(read=inputStream.read(buffer)>0;){
05/28 01:26, 4F

05/28 01:26, , 5F
resultStream.write(buffer,0,read);}
05/28 01:26, 5F

05/28 01:27, , 6F
resultStream.toString("utf8");
05/28 01:27, 6F

05/28 01:31, , 7F
上面是我慣用的讀inputStream手法 被那些小問題搞毛乾脆自己
05/28 01:31, 7F

05/28 01:32, , 8F
來 不過你的code不能跑問題應該不是出在這裡喔 去查一下Threa
05/28 01:32, 8F

05/28 01:33, , 9F
d或AsyncTask吧
05/28 01:33, 9F

05/30 20:57, , 10F
成功了,感謝您
05/30 20:57, 10F

05/30 20:57, , 11F
05/30 20:57, 11F
文章代碼(AID): #1NI1_CTf (AndroidDev)