Итак, у меня есть клиент → 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 секунд.Я запускаю свой сервер на своем компьютере, а затем собираю и развертываю на своем HoloLens.
У меня есть Wpf-Testclient, который без проблем подключается к тому же серверу.