兩種方法,一個用标記變量,另一個用文法
不多說,直接代碼:
主方法一:
send s = new send();
s.start();
receive r = new receive();
r.start();
class send extends Thread {
public void run() {
//睡眠計數
int s = 0;
//重發計數
int r = 0;
while (flag == true && r < 3) {
try {
if (s == 20) {
// 發送資訊
byteout = new PrintStream(socket.getOutputStream());
byteout.write(sendStart.data);
}
s++;
System.out.println(s);
sleep(500);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
}
}
if (r == 3) {
ShowDialog("伺服器無響應");
}
}
// 業務主線程,負責接收伺服器端的消息
class receive extends Thread {
try {
while (socket.isConnected()) {
in = socket.getInputStream();
in.read(content);
// if (收到資料) {
flag = false;
//這個睡眠是為了給時間讓send看到标記變量已改變
sleep(1000);
byteout.close();
socket.close();
。。。。。。。。。。。。。。。
} catch (Exception ex) {
ex.printStackTrace();
第二種方法: