blob: 6f0fb44bc8cc32eea002a208226d91b310680ef6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
package com.example.test;
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.Timer;
import java.util.TimerTask;
import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
public class Transam implements Runnable {
public Timer timer;
public boolean flag = true;
public int cnt = 4;
public int port;
public String ip;
Thread thread;
Myrequest req;
Myrespond res;
Controller core;
Transam(String i,int p,Myrequest r,Controller c){
port = p;
ip = i;
req = r;
core = c;
}
public void run() {
final thd t = new thd();
flag = false;
thread = new Thread(t);
cnt = 4;
thread.start();
timer = new Timer();
TimerTask task = new Timertk();
timer.schedule(task,2000,2000);
}
class thd implements Runnable {
@Override
public void run() {
try{
SocketClient client = new SocketClient(ip,port);
res = client.sendMsg(req);
core.recieveInfo(res);
Message msg = new Message();
msg.what = 1;
handler.sendMessage(msg);
client.closeSocket();
}catch (UnknownHostException e){
}catch (IOException e){
}
}
}
@SuppressLint("HandlerLeak")
Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
flag = true;
break;
case 2:
res = new Myrespond();
res.wrong = msg.obj.toString();
core.recieveInfo(res);
break;
case 3:
final thd t = new thd();
thread = new Thread(t);
thread.start();
break;
}
super.handleMessage(msg);
}
};
class Timertk extends TimerTask {
public void run() {
if(flag==false&&cnt>0){
cnt--;
}
else if(cnt==0) {
Message msg = new Message();
msg.obj = "connecting failed";
msg.what = 2;
handler.sendMessage(msg);
timer.cancel();
}
else if(flag==true){
timer.cancel();
}
}
};
}
|