Windows phone 7 连接Windows Phone锁屏下的插座

Windows phone 7 连接Windows Phone锁屏下的插座,windows-phone-7,Windows Phone 7,我尝试编写一个应用程序,用套接字连接到服务器。一切正常,但当应用程序在锁屏下运行时,套接字无法连接(它正在等待锁屏被移除) 设备连接到PC,因此WiFi不应影响(自动关闭)节省电池 如何复制(代码如下): 1) 启动应用程序并等待30秒。在调试窗口中,您将看到: Try to connect at 15:35:08 Connected at 15:35:08 Try to connect at 15:36:07 Connected at 15:36:42 2) 启动应用程序,锁定屏幕并等待3

我尝试编写一个应用程序,用套接字连接到服务器。一切正常,但当应用程序在锁屏下运行时,套接字无法连接(它正在等待锁屏被移除)

设备连接到PC,因此WiFi不应影响(自动关闭)节省电池

如何复制(代码如下):

1) 启动应用程序并等待30秒。在调试窗口中,您将看到:

Try to connect at 15:35:08
Connected at 15:35:08
Try to connect at 15:36:07
Connected at 15:36:42
2) 启动应用程序,锁定屏幕并等待30秒。在调试窗口中,您将看到:

Try to connect at 15:35:08
Connected at 15:35:08
Try to connect at 15:36:07
Connected at 15:36:42
所以,在锁屏期间,什么也没发生,套接字被冻结

这是我的代码:

    public MainPage()
    {
        InitializeComponent();

        PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;

        DnsEndPoint dnsEndPoint = new DnsEndPoint("stackoverflow.com", 80);
        Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        SocketAsyncEventArgs socketOperationEventArguments = new SocketAsyncEventArgs();
        socketOperationEventArguments.RemoteEndPoint = dnsEndPoint;
        socketOperationEventArguments.Completed += (s, e) =>
        {
            if (e.SocketError == SocketError.Success && e.ConnectSocket.Connected)
            {
                Debug.WriteLine("Connected at " + DateTime.Now.ToLongTimeString());
            }
        };

        DispatcherTimer Timer = new DispatcherTimer()
        {
            Interval = TimeSpan.FromSeconds(10)
        };
        Timer.Tick += (s, e) =>
        {
            Debug.WriteLine("Try to connect at " + DateTime.Now.ToLongTimeString());
            socket.ConnectAsync(socketOperationEventArguments);

            Timer.Stop();
        };
        Timer.Start();
    }
编辑:

在锁定屏幕下发送数据也不工作。日志:

Try to connect at 10:18:39
Connected at 10:18:39
Try to send at 10:18:40
Send data at 10:18:40
Try to send at 10:18:41
Send data at 10:18:41
Try to send at 10:18:42
Send data at 10:18:42
Try to send at 10:18:43
Try to send at 10:18:44
Try to send at 10:18:45
Try to send at 10:18:46
Try to send at 10:18:47
Try to send at 10:18:48
Try to send at 10:18:49
Send data at 10:18:50
Send data at 10:18:50
Send data at 10:18:50
Send data at 10:18:50
Send data at 10:18:50
Send data at 10:18:50
Send data at 10:18:50
Try to send at 10:18:51
Send data at 10:18:51
Try to send at 10:18:52
Send data at 10:18:52

屏幕从10:18:43锁定到10:18:50

在Mango中激活锁定屏幕时,套接字未接收任何数据。 目前还没有已知的解决方法

请参见此处的更多信息:

你所能做的就是首先防止锁屏出现。 有关如何执行此操作的更多信息,请参见此处:


如果在锁定屏幕激活之前插座已经打开,它是否保持打开状态?否,当屏幕锁定被移除时,所有发送数据
已完成
事件都会引发。锁定时,没有任何东西…如果您查看Silverlight应用程序的清单。该清单上的第7项是:;“向您的应用程序发出不应执行新网络请求和隔离存储操作的信号。”虽然没有明确说明,但我敢打赌,在锁定屏幕下,所有网络连接都将被禁用。尝试在锁定之前打开一个连接,让它保持运行,然后查看锁定/重新锁定后会发生什么。
Socket
即使在锁定之前连接,也无法发送数据。但是,
HttpWebRequest
在锁定屏幕下工作正常。为什么对套接字有这样的限制?我看到了这个链接,但我希望存在一些解决方法。无论如何谢谢你