[問題] android TCP socket 接收失敗
是這樣的 我現在要連一個tcp連線
server端目前是電腦 用C寫的
client端在android上 java寫成 用ap開wifi讓手機連wifi
資料傳出去是可以的 但是接收時input.readLine()會卡住
網路上google過 說readLine()要讀到'\n' '\r' '\r\n'之類的才會停止 否則會卡住
後來在要傳的字串裡加入這些符號依然沒有用
用wireshark監聽時字串也都有出現結尾 0a ,0d ,0a0d
而且同樣的方法把client端寫一個pc端的java程式是可以正常連線傳輸
但在android中則會卡在readLine()
我去google play下載 TCP Client也是可以跟server連線
所以一定是我哪邊沒寫好 以下是我擷取自己幾段程式碼
1.程式一開啟就會開socket
class ClientThread implements Runnable {
public void run() {
try {
socket = new Socket("169.254.2.3",8899);
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}}}
2.當按下按鈕 會先傳字串給server 然接從server接收字串
public void onClick(View v) {
try {
// send
EditText et = (EditText) findViewById(R.id.EditText01);
String str = et.getText().toString();
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),true);
out.println(str);
//以上傳出去是正常的
//recv
tv.setText("message 1");
BufferedReader input = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
// read line(s)
tv.setText("message 2");
String message = input.readLine(); // <--這裡卡住了
tv.setText(message);
//以上只顯示出message 2
不知道沒有大大能解惑m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.80.199
→
02/11 22:44, , 1F
02/11 22:44, 1F
→
02/11 23:02, , 2F
02/11 23:02, 2F
※ 編輯: jacky75113 來自: 218.166.88.51 (02/12 08:41)
→
02/12 12:30, , 3F
02/12 12:30, 3F
→
02/12 12:30, , 4F
02/12 12:30, 4F
→
02/12 13:34, , 5F
02/12 13:34, 5F
→
02/12 13:35, , 6F
02/12 13:35, 6F