首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >紧凑框架套接字超时

紧凑框架套接字超时
EN

Stack Overflow用户
提问于 2011-12-23 17:25:07
回答 1查看 571关注 0票数 0

在PDA设备的CF应用程序中检测套接字连接丢失时出现问题。我有一个静态类,它有用于通信的静态方法(Connect(),Write(),Disconnect())。静态,因为所有窗体都可以调用Write方法。

在Connect方法中,我调用了socket.Connect(ipEndpoint);但是当设备没有wifi连接时,程序会在这一行暂停大约20秒,这太长了。此外,如果用户启动Write()方法(保存一些数据)并且wifi连接丢失,用户将无法与表单交互,并认为应用程序被冻结。由于CF套接字连接没有超时选项,那么控制套接字行为的最佳方法是什么?我的想法是,当socket在5秒内没有响应时,显示某种“通信表单”,它将尝试重新建立连接。这个表单将有图形指示器(旋转时钟或类似的东西),以显示用户,程序正在尝试连接和退出按钮,如果用户决定退出应用程序。我假设这必须使用Thread来完成,但因为我没有使用它的经验。我需要帮助如何管理这种行为。

EN

回答 1

Stack Overflow用户

发布于 2012-01-20 05:22:47

您可以调用Socket.BeginConnect()在后台启动连接。然后,您可以指定将在套接字连接(或超时)时调用的回调方法。此外,要在尝试连接时实现进度条倒计时,您可以执行以下操作:

代码语言:javascript
复制
IAsyncResult ar = moSocket.BeginConnect(...)

然后,您可以让您的连接表单使用计时器进行倒计时,通过调用以下命令来检查连接状态:

代码语言:javascript
复制
ar.IsComplete

轮询效率不是很高,但在这种情况下,它与您所描述的弹出连接表单配合得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8614247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档