Я пытаюсь отправлять данные через UDP каждые 20 мс, и он работает правильно.Но, поскольку я пытаюсь использовать TCP, он не работает должным образом, и приложение выдает мне ошибку, которая не отвечает!Следующий код предназначен для отправки через UDP
public class sMessage implements Runnable {
@Override
public void run() {
try {
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("192.168.16.254");
int msg_length=messageStr.length();
byte[] message = messageStr.getBytes();
DatagramPacket p = new DatagramPacket(message, msg_length,local,server_port);
s.send(p);
} catch (IOException e) {
Log.e(TAG, "ERROR");
}
}
}
И я использую тот же Runnable для TCP, но не работает правильно!
public class sMessage implements Runnable {
@Override
public void run() {
try {
Log.v(TAG, "send");
InetAddress serverAddr = InetAddress.getByName(SERVERIP);
Socket socket = new Socket(serverAddr, 5000);//create a socket
DataOutputStream os = new DataOutputStream(socket.getOutputStream());
PrintWriter ot = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
String s = "1";
//s+="\r\n";
//byte[] bytes = s.getBytes("UTF-8");
//os.writeChar(1);
//os.writeBytes(text);
//os.writeUTF(String.valueOf("123"));
ot.println(text);
ot.flush();
ot.close();
os.flush();
os.close();
socket.close();
} catch (IOException e) {
Log.e(TAG, "ERROR");
}
}
}
Моя цель - отправлять данные каждые 10 мс с использованием TCP!почему он не работает должным образом! ??Заранее спасибо за ваши ответы