Я уже несколько дней пытаюсь создать TCP-соединение от HoloLens к моей локальной машине. Я знаю, что существует множество решений, но я понятия не имею, почему я не могу подключиться к устройству. Может быть, кто-нибудь может мне помочь или посоветовать, что я делаю не так.
Вот мой код
using UnityEngine;
#if WINDOWS_UWP
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Windows.Networking;
using Windows.Networking.Sockets;
using Windows.Storage.Streams;
using Windows.Foundation;
#endif
public class DataListener : MonoBehaviour
{
#if WINDOWS_UWP
private StreamSocket _socket;
#endif
private void Start()
{
SetupTcpConnection();
}
//HoloLens Code
private void SetupTcpConnection()
{
#if WINDOWS_UWP
if (_socket != null)
return;
_socket = new StreamSocket();
var hostName = new HostName("192.168.8.102");
var socketConnectionAwaiter = _socket.ConnectAsync(hostName, "11000");
var handler = new AsyncActionCompletedHandler(SocketConnectionCompleted);
socketConnectionAwaiter.Completed = handler;
#endif
}
#if WINDOWS_UWP
void SocketConnectionCompleted(IAsyncAction action, AsyncStatus status)
{
if (status != AsyncStatus.Completed)
{
_socket.Dispose();
_socket = null;
return;
}
// Read the data
using (var reader = new StreamReader(_socket.InputStream.AsStreamForRead()))
{
var data = reader.ReadToEnd();
//then read data
}
}
#endif
}
C # Код заявки:
public static void StartClient3()
{
var listener = new
TcpListener(IPAddress.Any, 11000);
var connectionHandler = new ConnectionHandler();
var workerThread =
new Thread(connectionHandler.HandleConnections);
workerThread.Start(listener);
while (!Console.KeyAvailable) { }
Console.WriteLine("Shutting down");
listener.Stop();
workerThread.Abort();
}
public class ConnectionHandler
{
TcpListener _listener;
public void HandleConnections(object dataToPass)
{
_listener = dataToPass as TcpListener;
if (_listener == null)
return;
_listener.Start();
Console.WriteLine("We are waiting for a connection");
while (true)
{
var client = _listener.AcceptTcpClient();
Console.WriteLine("We are connected");
var dataToSend = "SampleString";
using (var writer = new StreamWriter(client.GetStream()))
{
writer.Write(dataToSend);
writer.Flush();
}
client.Close();
}
}
}
Я получаю IP (192.168.8.102) с моей локальной машины от ipconfig, так что это должен быть правильный.
Я не могу просто подключиться к HoloLens и не знаю почему.
Я также проверил настройки в Unity, такие как InternetClientServer, PrivateNetworkClientServer, InternetClient.
Есть что-нибудь, что я забыл. Буду очень признателен за вашу помощь!
Pat.