0

我有一个在 Windows Mobile 设备上运行的应用程序,它通过套接字连接到 Telnet 服务器。虽然设备“活着”,但一切都很好。如果设备“睡眠”,在唤醒时它会打开一个新端口,这会混淆服务器并且我的应用程序会断开连接。打开的新端口不是我的应用程序的一部分 - 这是标准行为吗?我怎样才能阻止它发生?

欢迎提出建议-谢谢:-)

4

1 回答 1

0

在挂起/恢复之前和之后使用套接字取决于设备的电源管理设置和设置。如果它在挂起期间关闭了网络(WLAN 或 WWAN),您必须关闭套接字并打开一个新连接。您可以使用 MS 电源通知消息队列查看电源通知。设备恢复后,应用程序将首先收到“设备已暂停”消息!同样,恢复后关闭和打开连接对于串行通信也是如此,我可以为电源消息队列提供 C++ 示例:http ://code.google.com/p/win-mobile-code/source/浏览/主干/KeyWedge/KeyWedge/PowerMsgQueue.cpp 可能您可能希望禁用设备的自动和手动挂起,并提供从您的应用程序中挂起设备的选项。然后就可以优雅地关闭通讯通道了。在服务器端,您必须将套接字设置为在一段时间不活动后关闭。否则,您可能会用完沟通渠道。在客户端,您应该只在需要传输数据时打开和关闭通信通道。

以上是一般建议。如果您提供一些代码片段,我们可能会提供更多帮助。

于 2013-10-23T06:16:36.683 回答