所以我有一个客户端→HoloLens,它连接到我的tcp服务器。问题是,有时我可以连接,有时不能连接,我也不知道为什么。
这是我的代码的一部分:
public class BrowserClient : IBrowserClient{
private TcpClient Client { get; } = new TcpClient();
private RawImage RawImage { get; set; }
private CancellationTokenSource Source { get; set; }
//Connect
public void Initialize(int connectionTimeoutInMs, string address, int port)
{
Source = new CancellationTokenSource();
try
{
using (var linked = CancellationTokenSource.CreateLinkedTokenSource(Source.Token))
{
var task = Client.ConnectAsync(address, port);
task.Wait(connectionTimeoutInMs, linked.Token);
if(task.IsCompleted)
{
Client.ListenAsync(OnMessageReceived, Source.Token);
}
else
{
throw new Exception("The client failed to connect to the server.");
}
}
}
catch
{
//TODO: Log
}
}
所以有时task.IsCompleted
是错误的,我无法连接,有时是真实的。超时设置为15秒。我要做的是,在我的PC上启动服务器,然后在HoloLens上进行构建和部署。
我有一个Wpf-Testclient,它可以毫无问题地连接到同一台服务器。