[問題] 請問如何接收pc端的Socket??
小弟目前是讓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
08/10 01:40, 1F
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章