• 30、Stream socket


    1、Start StreamSocketListener :

         StreamSocketListener 将创建一个链接的 'server' 边。它监听一个‘service name’(通常为一个端口号)

    然后当收到一个链接时调用一个回调,通常是其它应用程序请求建立链接时发生。当收到一个链接,需要再次调用

    这个 acceptAsync()。

    操作截图 :

    点击按钮 'Listen' :

    页面的 xaml :

    <TextBox x:Name="ServiceNameForListener" Text="22112"  />
    <Button x:Name="StartListener" Content="Listen"  Click="StartListener_Click"/>

    相应的 C#  :

       private async void StartListener_Click(object sender, RoutedEventArgs e)
       {
          //覆盖侦听器是安全的,如果所有引用都没有了它就会被
    //删除。但是在很多情况下覆盖原有数据是危险的,在这里我们阻止它
           if (CoreApplication.Properties.ContainsKey("listener"))
           {
              //已经被初始化,并执行了
               return;
           }
    
           if (String.IsNullOrEmpty(ServiceNameForListener.Text))
           {
              //需要提供一个服务名字
               return;
           }
    
           StreamSocketListener listener = new StreamSocketListener();
           listener.ConnectionReceived += OnConnection;
    
           // Save the socket, so subsequent steps can use it.
           CoreApplication.Properties.Add("listener", listener);
    
           // Start listen operation.
           try
           {
               await listener.BindServiceNameAsync(ServiceNameForListener.Text);
               rootPage.NotifyUser("Listening", NotifyType.StatusMessage);
           }
           catch (Exception exception)
           {
               CoreApplication.Properties.Remove("listener");
               
               // If this is an unknown status it means that the error is fatal and retry will likely fail.
               if (SocketError.GetStatus(exception.HResult) == SocketErrorStatus.Unknown)
               {
                   throw;
               }
    
               rootPage.NotifyUser("Start listening failed with error: " + exception.Message, NotifyType.ErrorMessage);
           }
       }
  • 相关阅读:
    List 组件简单示例及其onItemsDisclosure点击事件
    读取mysq数据库l数据,并使用dataview显示
    使用dataview组件显示服务器端xml文件数据
    Flex 布局教程:语法篇
    artTemplate模板引擎
    HTTP协议响应消息的常用状态码【转】
    淘宝网前端开发面试题(二)--JS 面试题
    淘宝网前端开发面试题(一)--HTML & CSS 面试题
    HTML 5 Canvas
    清除浮动的几种方法
  • 原文地址:https://www.cnblogs.com/hebeiDGL/p/2708440.html
Copyright © 2020-2023  润新知