UWP 客户端和服务器
UWP Cliet and Server
我在 win10 prof 上有 UWP 应用程序("server")运行,这个 UWP 应用程序是一个应用程序服务,我有另一个 UWP 应用程序(客户端),它使用 TSP/IP。其他 win10 设备上有多少客户端 运行 可以同时连接到 "server"?
使用 StreamSocketListener class,我相信您可以处理无限数量的客户端套接字连接(取决于实现、硬件、带宽等)。下面是使用静态 class.
的侦听器服务器端实现的基本示例
// Define static class here.
public static StreamSocketListener Listener { get; set; }
// This is the static method used to start listening for connections.
public static async Task<bool> StartServer()
{
Listener = new StreamSocketListener();
// Removes binding first in case it was already bound previously.
Listener.ConnectionReceived -= Listener_ConnectionReceived;
Listener.ConnectionReceived += Listener_ConnectionReceived;
try
{
await Listener.BindServiceNameAsync(VMS.Current.Port);
return true;
}
catch (Exception ex)
{
Listener.ConnectionReceived -= Listener_ConnectionReceived;
Listener.Dispose();
return false;
}
}
private static async void Listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
{
var remoteAddress = args.Socket.Information.RemoteAddress.ToString();
var reader = new DataReader(args.Socket.InputStream);
var writer = new DataWriter(args.Socket.OutputStream);
try
{
// Handle communication here. You'll likely use an infinite loop of reading from the input stream until the socket is disconnected.
}
catch (Exception ex)
{
writer.DetachStream();
reader.DetachStream();
return;
}
}
两端连接后,有多种处理流套接字的方法,我不得不进行一些研究和实验,以找到适合我正在做的事情的过程。
我在 win10 prof 上有 UWP 应用程序("server")运行,这个 UWP 应用程序是一个应用程序服务,我有另一个 UWP 应用程序(客户端),它使用 TSP/IP。其他 win10 设备上有多少客户端 运行 可以同时连接到 "server"?
使用 StreamSocketListener class,我相信您可以处理无限数量的客户端套接字连接(取决于实现、硬件、带宽等)。下面是使用静态 class.
的侦听器服务器端实现的基本示例// Define static class here.
public static StreamSocketListener Listener { get; set; }
// This is the static method used to start listening for connections.
public static async Task<bool> StartServer()
{
Listener = new StreamSocketListener();
// Removes binding first in case it was already bound previously.
Listener.ConnectionReceived -= Listener_ConnectionReceived;
Listener.ConnectionReceived += Listener_ConnectionReceived;
try
{
await Listener.BindServiceNameAsync(VMS.Current.Port);
return true;
}
catch (Exception ex)
{
Listener.ConnectionReceived -= Listener_ConnectionReceived;
Listener.Dispose();
return false;
}
}
private static async void Listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
{
var remoteAddress = args.Socket.Information.RemoteAddress.ToString();
var reader = new DataReader(args.Socket.InputStream);
var writer = new DataWriter(args.Socket.OutputStream);
try
{
// Handle communication here. You'll likely use an infinite loop of reading from the input stream until the socket is disconnected.
}
catch (Exception ex)
{
writer.DetachStream();
reader.DetachStream();
return;
}
}
两端连接后,有多种处理流套接字的方法,我不得不进行一些研究和实验,以找到适合我正在做的事情的过程。