gpt4 book ai didi

c# - HoloLens用作UDP服务器,但不作为客户端

转载 作者:行者123 更新时间:2023-12-03 12:08:24 26 4
gpt4 key购买 nike

我尝试在UWP应用程序中将数据从PC(服务器)发送到HoloLens(客户端)。
我的主要目标是为HoloLens接收器使用“Windows.Networking.Sockets.DatagramSocket”,因为否则代码无法统一工作。
我已经用错误的角色完成了系统。 HoloLens将数据发送到PC,但使用“System.Net.Sockets.UdpClient”而不是DatagramSocket ...
在这里,您可以看到重要的代码部分:

// Current client application on PC (using System.Net.Sockets...)
HostName serverIp = new HostName("192.168.0.109");
string port = "1337";

async void Client()
{
DatagramSocket socket = new DatagramSocket(); //creating socket
socket.MessageReceived += Socket_MessageReceived; //attach receive event
await socket.BindEndpointAsync(serverIp, port); //bind socket
}

async void Socket_MessageReceived(DatagramSocket sender,
DatagramSocketMessageReceivedEventArgs args) //receive event
{
Stream streamIn = args.GetDataStream().AsStreamForRead();
StreamReader reader = new StreamReader(streamIn);
string msg = await reader.ReadLineAsync();
Print("Message received: " + msg);
}


// Current Server application on HoloLens (using Windows.Networking.Sockets...)
IPAddress serverIp = IPAddress.Parse("192.168.0.109");
const int port = 1337;

async void Server()
{
var udpClient = new UdpClient();
var serverEP = new IPEndPoint(serverIp, port);
byte[] bytes = Encoding.ASCII.GetBytes("Hello from Client!"); //parse
await udpClient.SendAsync(bytes, bytes.Length, serverEP); //send
}

PC成功从HoloLens接收到消息。
我的问题:当我在PC发送的设备(通过UdpClient)和HoloLens接收的(通过DatagramSocket)上交换服务器和客户端应用程序时,不再收到该消息。
两个设备都已连接到网络,我在PC上禁用了防火墙,并且在两个appxmanifests中都启用了“PrivateNetworks”。

有人能弄清楚原因吗?

亲切的问候

最佳答案

我以某种方式使它起作用,但不幸的是我无法分辨出区别。
我现在的问题是,通信只能在一个方向上进行。我可以写套接字,消息到达,但不能从套接字发回消息。

当我想从套接字写入时,一定不要使用“socket.BindEndpointAsync()”,而要使用“socket.ConnectAsync()”,对吗?但是无论我使用DataWriter还是OutputStream属性,实际工作的接收者都无法接收到任何消息。

        writer = new DataWriter(socket.OutputStream);
writer.WriteString("test");

IBuffer buffer = Encoding.ASCII.GetBytes("test").AsBuffer();
await socket.OutputStream.WriteAsync(buffer);

也许有人可以帮助我。

亲切的问候

关于c# - HoloLens用作UDP服务器,但不作为客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50930402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com