Mình khai báo 1 class MyApp

có 1 số hàm sau

public MyApp() throws IOException
{
int port_number=4200;
String host="192.168.x.48";
if (!connected) {
socket = new Socket(host, port_number);
Log.d("SHOME", "Connected");
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
connected = true;
Thread getSocket = new Thread(new GetSocketThread());
getSocket.start();
}
}
////////
public void SendSocket(String text) throws IOException
{
sendSocketData = text;
Thread sendSocket = new Thread(new SendSocketThread());
sendSocket.start();
}
//////////
public class SendSocketThread implements Runnable {

public void run() {
if(connected) {
try {
out.println(sendSocketData);
Log.d("SHOME send data",sendSocketData);
} catch (Exception e) {
Log.e("SHOME", "S: Error", e);
}
}
}
}
////////
public String getData()
{
return socketData;
}
////////

public class GetSocketThread implements Runnable {

public void run() {
try {
while (connected) {
try {
socketData = in.readLine();
Log.d("SHOME get data", in.readLine());
} catch (Exception e) {
Log.e("SHOME", "S: Error", e);
}
}
socket.close();
Log.d("SHOME", "C: Closed.");
} catch (Exception e) {
Log.e("SHOME", "C: Error", e);
connected = false;
}
}
}

/////////

từ 1 Activity khác mình tạo object rồi gửi dữ liệu lên server và lấy dữ liệu về nhưng gặp tình trạng
ví dụ:
lần 1 gửi số 1 lên server, server trả về 1
lần 2 gửi số 2 lên server, server trả về 1
lần 3 gửi số 3 lên server, server trả về 1

lần 4 gửi số 4 lên server, server trả về 2
lần 5 gửi số 5 lên server, server trả về 2
.......

nó giống như là không lấy được dữ liệu mới nhất, mà bị trễ 1 hoặc 2 lần. Ai có kinh nghiệm giúp đỡ mình vấn đề này với ??? (ko phải do server trả sai dữ liệu vì với ngôn ngữ khác thì ok)

Chủ đề tương tự: