用socket連接服務器的時候,需要在子線程進行網絡請求,請求完成之后可以通過Handler來處理主線程應該得到的通知(更新view)
private void StartRequestFromSocket(final int mycho) {
new Thread() {
public void run() {
try {
SendRequest(mycho);
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
public void SendRequest(int mycho) {
String sendString="sendString";
try {
socket = new Socket(IpAddress, Port);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 由系統標准輸入設備構造BufferedReader對象
PrintWriter write = new PrintWriter(socket.getOutputStream());
// 由Socket對象得到輸出流,並構造PrintWriter對象
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
write.println(sendString);
write.flush();
getS = in.readLine();
System.out.println("Server:" + getS);
mHandler.sendEmptyMessage(mycho);
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
