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); } }