您好我有一个使用套接字连接到远程服务器的应用程序
socket = new Socket();
socket.connect(new InetSocketAddress(Ip, portNum), 7000);
我有两种方法发送&收到
发送方案是
PrintWriter out = new PrintWriter(socket.getOutputStream(),true);
方法接收中的
String msg = "";
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (in.ready()) {
msg = msg + (char) in.read();
}
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
在我调用的另一个类的AsyncTask中
send();
String response=receive();
上述代码没有等待期间发送或接收
即
Thread.sleep(2000);
我知道睡眠是一种糟糕的方法 我应该使用什么样的最佳方案?
在send方法中创建AsyncTask和在receive方法中创建另一个AsyncTask是否更好。
这是我使用睡眠的地方以及发送的数据和信息。收到
client.send(some sql statement representED as json format);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// sql select result represented as json
String RESULT = client.recive();
答案 0 :(得分:1)
在您尝试连接之前,您的服务器可能没有正在侦听。虽然您发布的代码中不清楚这一点。您需要在那里显示服务器和客户端代码。