作者dennisxnew1 (我不懂...)
看板AndroidDev
标题[问题] 请问如何接收pc端的Socket??
时间Tue Aug 9 22:57:14 2011
小弟目前是让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)
1F:推 rj9rj9123:接收时 用Handler来更新UI 08/10 01:40