【发布时间】:2011-05-02 21:04:39
【问题描述】:
我目前正在开发 Android 中的 tcp 客户端。 我想将我的 android 设备连接到计算机上的 tcp 服务器并每 2 秒接收一次数据。问题是由于我在 tcp 客户端中实现的 while 循环,我正在强制关闭我的应用程序。 我尝试以不同的方式编写循环,使 tcp 客户端检查服务器套接字,但没有成功。如何在不强制关闭的情况下创建一个检查服务器套接字的循环?
这是我目前正在使用的代码:
public class Connection implements Runnable {
@Override
public void run() {
try {
sk=new Socket(server,port);
viewsurface.setText("connected");
flag = true;
} catch (UnknownHostException e) {
viewsurface.setText("failed 1 socket");
flag = false;
} catch (IOException e) {
viewsurface.setText("failed 2 socket");
flag = false;
}
while (flag == true){
try {
checkin = sk.getInputStream();
checkint = checkin.available();
if (checkint > 0){
try {
BufferedReader in = new BufferedReader(new InputStreamReader(sk.getInputStream()));
received = in.readLine();
viewsurface.setText(received);
} catch (IOException e) {
viewsurface.setText("failed to receive");
}
}
Thread.sleep(2000);
} catch (IOException e) {
viewsurface.setText("checkin failed");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
【问题讨论】:
标签: android