Hololens TCP 套接字 - Hololens 服务器的 Python 客户端

2024-02-19

经过几周的挫折后,我终于能够将一个字符串从 Python 客户端发送到 Hololens 服务器。代码如下并且运行完美。但是,我想知道是否有使用套接字经验的人可以帮助我修改此代码以将 openCV 网络摄像头帧(基本上只是发送图像)从 Python 发送到 Hololens。我一直在尝试,但 C# 脚本中似乎没有收到图像数据。

太感谢了。

Hololens服务器代码:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

#if !UNITY_EDITOR
    using Windows.Networking;
    using Windows.Networking.Sockets;
    using Windows.Storage.Streams;
#endif

//Able to act as a reciever 
public class UniversalSampleTutorial : MonoBehaviour
{
    public String _input = "Waiting";

#if !UNITY_EDITOR
        StreamSocket socket;
        StreamSocketListener listener;
        String port;
        String message;
#endif

    // Use this for initialization
    void Start()
    {
#if !UNITY_EDITOR
        listener = new StreamSocketListener();
        port = "9090";
        listener.ConnectionReceived += Listener_ConnectionReceived;
        listener.Control.KeepAlive = false;

        Listener_Start();
#endif
    }

#if !UNITY_EDITOR
    private async void Listener_Start()
    {
        Debug.Log("Listener started");
        try
        {
            await listener.BindServiceNameAsync(port);
        }
        catch (Exception e)
        {
            Debug.Log("Error: " + e.Message);
        }

        Debug.Log("Listening");
    }

    private async void Listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
    {
        Debug.Log("Connection received");

        try
        {
            while (true) {

                    using (var dw = new DataWriter(args.Socket.OutputStream))
                    {
                        dw.WriteString("Hello There");
                        await dw.StoreAsync();
                        dw.DetachStream();
                    }  

                    using (var dr = new DataReader(args.Socket.InputStream))
                    {
                        dr.InputStreamOptions = InputStreamOptions.Partial;
                        await dr.LoadAsync(12);
                        var input = dr.ReadString(12);
                        Debug.Log("received: " + input);
                        _input = input;

                    }
            }
        }
        catch (Exception e)
        {
            Debug.Log("disconnected!!!!!!!! " + e);
        }

    }

#endif

    void Update()
    {
        this.GetComponent<TextMesh>().text = _input;
    }
}

Python客户端(需要从这里发送图像而不是字符串)

import asyncio

#THIS CODE WORKS SENDING STRING MESSAGE TO HOLOLENS

async def tcp_echo_client(message, loop):
    reader, writer = await asyncio.open_connection('192.168.1.110', 9090, loop=loop)

    print('Send: %r' % message)
    writer.write(message.encode())

    data = await reader.read(100)
    print('Received: %r' % data.decode())

    print('Close the socket')
    writer.close()


message = 'hello there frend'
loop = asyncio.get_event_loop()
loop.run_until_complete(tcp_echo_client(message, loop))
loop.close()

编辑:这是我一直在研究的图像代码。它还不起作用,我不确定我是否正确接收字节数组:https://gist.github.com/jryebread/3961e890375fcc8a64c8ac3d279ec9fa https://gist.github.com/jryebread/3961e890375fcc8a64c8ac3d279ec9fa


我已经弄清楚如何发送图像了。我最终从 python 客户端以字符串形式发送日期,并在 Hololens 服务器脚本上对字符串进行 Base64 编码和解码。

https://gist.github.com/jryebread/2bdf148313f40781f1f36d38ada85d47 https://gist.github.com/jryebread/2bdf148313f40781f1f36d38ada85d47

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hololens TCP 套接字 - Hololens 服务器的 Python 客户端 的相关文章

  • Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

    我正在使用 Python 3 并尝试连接到dstk 我收到错误urllib包裹 我对SO进行了很多研究 但找不到与这个问题类似的东西 api url self api base street2coordinates api body jso
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 在flatpak项目中使用scrapy脚本

    我正在构建一个 flatpak 构建的项目 我有一个按钮 当单击它时我希望它运行 scrapy 脚本来抓取数据 窗口用户界面
  • 为什么大多数 C 开发人员使用 Define 而不是 const? [复制]

    这个问题在这里已经有答案了 在许多程序中 define与常量具有相同的用途 例如 define FIELD WIDTH 10 const int fieldWidth 10 我通常认为第一种形式优于另一种形式 它依赖于预处理器来处理基本上是
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 如何在 Perl 中使用原始套接字?

    你怎样才能得到一个rawPerl 中的套接字 那么构建与其一起使用的数据包的最佳方法是什么 与在 C 中执行的操作相同 通过在创建套接字时设置套接字类型 在示例中CPAN http search cpan org rgarcia perl
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 当“int”处于最大值并使用 postfix ++ 进行测试时,代码定义良好吗?

    示例 未定义行为的一个示例是整数溢出的行为 C11dr 3 4 3 3 int溢出是未定义的行为 但这是否适用于存在循环的以下内容 并且不使用现在超出范围的副作用i 特别是 这是否后缀增量规格帮助 结果的值计算在副作用之前排序 更新操作数的
  • 当模板类不包含可用的成员函数时,如何在编译时验证模板参数?

    我有以下模板struct template
  • 如何挤出平面 2D 网格并赋予其深度

    我有一组共面 连接的三角形 即二维网格 现在我需要将其在 z 轴上挤出几个单位 网格由一组顶点定义 渲染器通过与三角形数组匹配来理解这些顶点 网格示例 顶点 0 0 0 10 0 0 10 10 0 0 10 0 所以这里我们有一个二维正方
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 转到定义:“无法导航到插入符号下的符号。”

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我今天突然开始在我的项目中遇到一个问题 单击 转到定义 会出现一个奇怪的错误 无法导航到

随机推荐

  • 证书验证失败:证书已过期 (_ssl.c:1108)

    当尝试运行我的 Discord 机器人时 我收到此错误 raise ClientConnectorCertificateError aiohttp client exceptions ClientConnectorCertificateEr
  • 如何在 Windows 启动时启动 python 文件?

    我有一个 python 文件并且正在运行该文件 如果 Windows 关闭并再次启动 我如何在每次 Windows 启动时运行该文件 根据脚本正在执行的操作 您可以 将其打包成服务 然后安装该服务 将其添加到 Windows 注册表 HKC
  • 我想在启动画面中播放lottie动画React Native

    在 React Native 中 在应用程序启动之前 我们可以看到白屏 我想在单击应用程序图标时立即加载启动屏幕 我想避免白色背景 Using 反应本机启动画面 https github com crazycodeboy react nat
  • 使用远程 couchbase 和 AWS ec2 时超时

    出于开发目的 我想将本地计算机连接到安装在远程 ec2 上的 couchbase 我成功建立连接 但当我尝试访问数据时出现超时 我搜索了问题并发现here https stackoverflow com questions 12117746
  • Java 的 varargs 性能

    编码 我来检查 Java 的 vararg 性能 我编写以下测试代码 public class T public static void main String args int n 100000000 String s1 new Stri
  • PHP 全局常量是一种良好的现代开发实践吗?

    我正在开发一个具有相当大的 PHP 代码库的新项目 该应用程序使用了相当多的 PHP 常量 define FOO bar 特别是对于数据库连接参数之类的事情 这些常量都定义在一个配置文件中 该文件是require once 基本上应用程序中
  • 连接两个时间序列的最有效方法

    想象一下我有一张这样的表 CREATE TABLE time series snapshot date DATE sales INTEGER PRIMARY KEY snapshot date 具有这样的值 INSERT INTO time
  • 运行查询时“不支持使用USE语句在数据库之间切换”

    尝试使用以下命令选择数据库时出现以下错误php s标准mssql select db功能 USE statement is not supported to switch between databases Use a new connec
  • Linux内核设备驱动程序以DMA方式进入内核空间

    LDD3 p 453 演示dma map single使用作为参数传入的缓冲区 bus addr dma map single dev gt pci dev gt dev buffer count dev gt dma dir Q1 这个缓
  • 装箱/拆箱和可为空?

    我知道装箱和拆箱是关于强制转换 真实类型到对象 对象到真实类型 但我不明白 MSDN 对 Nullable 的说法 这是我不明白的文字 当可空类型被装箱时 公共语言运行时会自动装箱 Nullable 对象的基础值 而不是 Nullable
  • 无法读取未定义的属性“client_secret”

    我尝试按照 Node js 的说明创建一个示例程序https developers google com google apps activity v1 quickstart nodejs https developers google c
  • 无法将 Json 解析为 NSDictionary

    我有一个 Web 服务 它返回以下 Json String password 1234 user andreas 我调用网络服务并尝试解析返回的数据 例如 NSURLConnection sendAsynchronousRequest re
  • 找不到模块:无法解析“F:\React\react-complete-guide\src\Component”中的“../axios”

    我在我的中遇到这个编译错误React我尝试发送的项目GET要求 src Component Form js Module not found Can t resolve axios in F React react complete gui
  • 是一个PrintWriter和BufferedWriter

    基本上我想知道 PrintWriter 是否是缓冲写入器 我见过这样的代码PrintWriter pw new PrintWriter new BufferedWriter new FileWriter file 然而从这个javadoc
  • 如何用C语言制作ppm文件的黑白图片?

    嘿 我的代码需要一些帮助 我读取了 ppm 文件 将颜色更改为黑色和白色 并希望将其保存到新文件中 我可以读取文件的标题并将其写入新文件 但我在更改颜色方面遇到了困难 我知道我可以用以下公式得到灰度值 0 299 红色分量 0 587 绿色
  • 从不同文件夹压缩文件,保留目录结构

    我编写了一些非常有趣的代码来压缩多个文件和文件夹 该脚本将采用参数列表 文件和文件夹 并将它们压缩为以日期 时间作为名称的 zip 所以我需要一些在参数是文件时执行的代码 该代码应将文件的目录结构添加到 zip 文件中 THE SCRIPT
  • 如何使用 DBpedia 属性构建主题层次结构?

    我试图通过遵循下面提到的两个 DBpedia 属性来构建主题层次结构 skos 更广泛的财产 dcterms 主题属性 我的目的是给这个词确定它的主题 例如 给出这个词 支持向量机 我想从中识别主题 例如分类算法 机器学习等 然而 有时我对
  • 使用 Perl 单行从文本文件中提取列:类似于 Unix cut

    我使用的是 Windows 我想使用 Perl Python 批处理等单行代码从文本文件中提取某些列 在 Unix 上我可以这样做 cut d f 1 3
  • 如何轻松地在 Git 中的多个发布分支上应用错误修复?

    我已经使用 git 进行单人开发有一段时间了 但直到现在我还没有遇到任何棘手的分支问题 而且我似乎忘记了一些基本的东西 而我在阅读实用版本后无疑 知道 这些东西使用 Git 进行控制书籍 我经常比我的网站上实际发布的内容提前几个版本 因此当
  • Hololens TCP 套接字 - Hololens 服务器的 Python 客户端

    经过几周的挫折后 我终于能够将一个字符串从 Python 客户端发送到 Hololens 服务器 代码如下并且运行完美 但是 我想知道是否有使用套接字经验的人可以帮助我修改此代码以将 openCV 网络摄像头帧 基本上只是发送图像 从 Py