Chinaunix首页 | 论坛 | 博客
  • 博客访问: 404371
  • 博文数量: 44
  • 博客积分: 4980
  • 博客等级: 上校
  • 技术积分: 1035
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-09 20:39
个人简介

偶尔编程的胖子 40岁之后还能坚持学习

文章分类

全部博文(44)

文章存档

2023年(12)

2022年(2)

2011年(1)

2010年(6)

2009年(1)

2008年(22)

我的朋友

分类: Android平台

2023-11-05 17:57:35

在使用网络开发中,{BANNED}最佳初直接使用了ClientSocket.Connect(endPoint) ;
这个存在一个问题,connect时,如果对方server没有打开,需要好长时间才会返回一个异常,查了下,好像说是默认20s,这个用户体验就会很差。
搜索了下,找到了一套解决方案,直接贴出来

IAsyncResult connResult = ClientSocket.BeginConnect(endPoint, null, null);
//WaitHandle.WaitOne 方法阻止当前线程,直到当前的 WaitHandle 收到信号
connResult.AsyncWaitHandle.WaitOne(2000, true);  //等待2秒
if (!connResult.IsCompleted)
{
ClientSocket.Close();
return false;
//处理连接不成功的动作
}
else
{

//处理连接成功的动作
}
解释下,就是不要直接使用connect方法,使用BeginConnect方法,再调用WaitOne,等待2s即可,当2s未连接上时,就直接返回了,当然这个可以更快,再快的我也没试过,可以试试。

阅读(174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~