当前位置: 首页>>代码示例>>C#>>正文


C# DatagramSocket.EnableTransferOwnership方法代码示例

本文整理汇总了C#中Windows.Networking.Sockets.DatagramSocket.EnableTransferOwnership方法的典型用法代码示例。如果您正苦于以下问题:C# DatagramSocket.EnableTransferOwnership方法的具体用法?C# DatagramSocket.EnableTransferOwnership怎么用?C# DatagramSocket.EnableTransferOwnership使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Windows.Networking.Sockets.DatagramSocket的用法示例。


在下文中一共展示了DatagramSocket.EnableTransferOwnership方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Run

        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            var deferral = taskInstance.GetDeferral();

            try
            {
                var details = taskInstance.TriggerDetails as SocketActivityTriggerDetails;
                var socketInformation = details.SocketInformation;

                switch (details.Reason)
                {
                    case SocketActivityTriggerReason.SocketActivity:
                        var socket = socketInformation.DatagramSocket;
                        //DataReader reader = new DataReader(socket.InputStream);
                        //reader.InputStreamOptions = InputStreamOptions.Partial;
                        //await reader.LoadAsync(250);
                        //var dataString = reader.ReadString(reader.UnconsumedBufferLength);
                        ////ShowToast(dataString);
                        //socket.TransferOwnership(socketInformation.Id);
                        break;

                    case SocketActivityTriggerReason.KeepAliveTimerExpired:
                        socket = socketInformation.DatagramSocket;
                        //DataWriter writer = new DataWriter(socket.OutputStream);
                        //writer.WriteBytes(Encoding.UTF8.GetBytes("Keep alive"));
                        //await writer.StoreAsync();
                        //writer.DetachStream();
                        //writer.Dispose();
                        //socket.TransferOwnership(socketInformation.Id);
                        break;

                    case SocketActivityTriggerReason.SocketClosed:
                        socket = new DatagramSocket();
                        socket.EnableTransferOwnership(taskInstance.Task.TaskId, SocketActivityConnectedStandbyAction.Wake);
                        //if (ApplicationData.Current.LocalSettings.Values["hostname"] == null)
                        //{
                        //    break;
                        //}
                        //var hostname = (String) ApplicationData.Current.LocalSettings.Values["hostname"];
                        //var port = (String) ApplicationData.Current.LocalSettings.Values["port"];
                        //await socket.ConnectAsync(new HostName(hostname), port);
                        socket.TransferOwnership(socketId);
                        break;

                    default:
                        break;
                }

                deferral.Complete();
            }
            catch (Exception ex)
            {
                //ShowToast(ex.Message);
                deferral.Complete();
            }
        }
开发者ID:KonstantinKolesnik,项目名称:SmartHub,代码行数:56,代码来源:WemosTransportBackgroundTask.cs

示例2: CheckSocketAsync

        private async Task CheckSocketAsync()
        {
            try
            {
                SocketActivityInformation socketInformation;
                if (!SocketActivityInformation.AllSockets.TryGetValue(socketId, out socketInformation))
                {
                    var socket = new DatagramSocket();
                    socket.Control.DontFragment = true;
                    socket.Control.MulticastOnly = true;
                    socket.EnableTransferOwnership(task.TaskId, SocketActivityConnectedStandbyAction.Wake);

                    await socket.BindServiceNameAsync(localService);
                    socket.JoinMulticastGroup(new HostName(remoteMulticastAddress));

                    // To demonstrate usage of CancelIOAsync async, have a pending read on the socket and call 
                    // cancel before transfering the socket. 
                    //DataReader reader = new DataReader(socket.InputStream);
                    //reader.InputStreamOptions = InputStreamOptions.Partial;
                    //var read = reader.LoadAsync(250);
                    //read.Completed += (info, status) =>
                    //{
                    //};
                    //await socket.CancelIOAsync();

                    socket.TransferOwnership(socketId);
                    socket = null;
                }
                //rootPage.NotifyUser("Connected. You may close the application", NotifyType.StatusMessage);
            }
            catch (Exception exception)
            {
                //rootPage.NotifyUser(exception.Message, NotifyType.ErrorMessage);
            }
        }
开发者ID:KonstantinKolesnik,项目名称:SmartHub,代码行数:35,代码来源:WemosTransport.cs


注:本文中的Windows.Networking.Sockets.DatagramSocket.EnableTransferOwnership方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。