android菜鸟 问一个关于socket执行时间的问题

发布于 2021-11-21 08:29:45 字数 1405 浏览 380 评论 1

new AsyncTask<String, Void, Void>(){
@Override
protected void onPostExecute(Void result) 
{
// TODO Auto-generated method stub
super.onPostExecute(result);
if(a==1){
Toast.makeText(CalculatorActivity.this,R.string.success,Toast.LENGTH_SHORT).show(); 
rsText.setText("");
a=0;
}
else
{
Toast.makeText(CalculatorActivity.this,R.string.fail,Toast.LENGTH_SHORT).show(); 
rsText.setText("");
}
}
@Override
protected Void doInBackground(String... arg0) {
// TODO Auto-generated method stub
String exp = rsText.getText().toString();
Socket socket;
try {
socket = new Socket(bundle.getString("ip"), 51706);
//InetAddress serverAddr = InetAddress.getByName(bundle.getString("ip")); 
Log.d("TCP", "C: Connecting..."+bundle.getString("ip")); 
Log.d("TCP", "C: Sending: '" + exp + "'"); 
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);    
out.println(exp);
socket.close();
a=1;
}
catch(Exception v)
{
Log.e("TCP", "S: Error", v);
}
return null;
}
}.execute(new String[]{});

}

这是安卓客户端的程序,当服务器没有开启时,客户端会卡在try中,现在需要一个方法在try一定时间无果后,跳出toast提示。刚学android,请提点。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晚风撩人 2021-11-24 07:59:07

socket.connect(remoteAddr, timeout); 不是可以设置超时时间么。超时的话会抛出异常,然后catch处理之

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文