[問題] 請問如何接收pc端的Socket??

看板AndroidDev作者 (我不懂...)時間13年前 (2011/08/09 22:57), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
小弟目前是讓pc為Server端 Android手機為Client端利用Socket(TCP)來互相溝通 連線後可以讓手機傳送字串給pc 但是卻不能讓pc端的字串送給Android手機 以下是Server端部分傳送字串的程式碼(Java SE) import java.io.*; import java.util.Scanner; import java.net.*; public class ser4{ public static void main(String args[]) throws IOException { ServerSocket providerSocket; Socket connection = null; DataInputStream dis; DataOutputStream dos; Scanner key = new Scanner(System.in); providerSocket = new ServerSocket(2004, 10); //設定port System.out.println("Waiting for connection"); connection = providerSocket.accept(); //接收連線accept() System.out.println("Connection received from " + connection.getInetAddress().getHostName()); dis = new DataInputStream(connection.getInputStream()); dos = new DataOutputStream(connection.getOutputStream()); String readin; int a=0; while(a==0){ //當輸入"0"時結束迴圈 readin = dis.readLine(); //dis接收手機的訊息 System.out.println(readin); //印出接收的訊息 //下面為傳送資料DataInputStream BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String s=br.readLine(); //接收輸入的資料 dos.writeUTF(s); //以writeUTF()寫進底層 dos.flush(); //flush()送出 if(readin.equals("0")) a=1; } providerSocket.close(); } } 以上程式碼在接收手機訊息是可以正常運作的 只有Server送出資料給手機一直沒跑出來 以下是android接收Server字串的程式片段 String tmp =null; BufferedInputStream br; br = new BufferedInputStream(clientSocket.getInputStream()); tmp=br.readLine(); TextView01.append(tmp1+"\n"); 這裡TextView01一直沒跑出收到的字串 後來也有試過用DataInputStream來接收字串 例如以下程式片斷 dis = new DataInputStream(clientSocket.getInputStream()); TextView01.append(dis.readUTF()); 但是這兩種方法Android都無法接收來自Java Socket的訊息 請問小弟是不是漏掉哪些觀念了?? 以上,謝謝指教。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.189.17 ※ 編輯: dennisxnew1 來自: 140.130.189.17 (08/09 23:00) ※ 編輯: dennisxnew1 來自: 140.130.189.17 (08/09 23:09)

08/10 01:40, , 1F
接收時 用Handler來更新UI
08/10 01:40, 1F
文章代碼(AID): #1EGKhDhJ (AndroidDev)
文章代碼(AID): #1EGKhDhJ (AndroidDev)