看板 AndroidDev 關於我們 聯絡資訊
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; public class ClientThread extends Thread { private boolean m_bIsRuning; private Socket m_socket= null;;//和伺服器端進行連線 private BufferedWriter bw; //取得網路輸出串流 private BufferedReader br; //取得網路輸入串流 public ClientThread() { m_bIsRuning = true; } public void run() { super.run(); while(m_bIsRuning) { try { m_socket = new Socket("192.168.1.2",1234); bw = new BufferedWriter( new OutputStreamWriter(m_socket.getOutputStream())); br = new BufferedReader(new InputStreamReader(m_socket.getInputStream())); while(m_socket.isConnected()) { if(br.readLine() != null) System.out.println(br.readLine()); } bw.close(); br.close(); m_socket.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } 小弟我是這方面的新手 以上的我寫的範例程式 當我使用這個Thread時 如果下bw.write和bw.flush,電腦Server端是收的到的 但上面的程式碼跑到br.readLine()時就整個停住沒有往下跑, 也沒有進到exception裡 想請問一下各位大大 哪邊有問題呢?? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.118.121 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1459349679.A.0F8.html
abccbaandy: 你server沒傳東西吧? 03/30 23:15
SuperEel: 如果沒傳的話,卡在那邊是正常的嗎? 03/30 23:16
abccbaandy: 印象中readLine會等讀到資料才會往下跑 03/30 23:16
SuperEel: 因為我是用WINDOWS的小程式傳的,也不知道有沒有傳成功 03/30 23:16
jacky75113: 改用read()呢 readline似乎都會這樣 03/30 23:55
y3k: readLine是確定對方是傳文件才會穩 不然很容易卡在那邊 03/31 00:12
y3k: 建議你改用read(byte[] buffer) 03/31 00:12
tctzzz: 之前遇過readline 第一個封包收不到,會等到第二個把第一 03/31 19:17
tctzzz: 個擠下來,然後在4.x會,5.x以上不會= = 03/31 19:18