如何通过本地网络在 C# 桌面应用程序和移动(android)设备之间进行通信? [关闭]

2023-12-28

我有一个 C# (.net 3.5) 桌面应用程序,可以在屏幕上打印一些数字。现在我想将其扩展到移动设备。 (在我的例子中是 Android 设备。)它必须显示与计算机屏幕上相同的数字。整个事情只是一个概念证明,它不必看起来漂亮,不必 100% 工作,有一个漂亮的 GUI 或简单的设置,它只需要显示一些数字。

我一直在研究 MonoDroid,因为它有可能使用 WCF 服务。 (我知道移动设备和台式计算机将连接到同一网络。)不幸的是,MonoDroid 的试用版不支持真正的设备,我不想花几百美元来证明这一点。

我有 Java 的基本知识,我认为我能够使用 Android SDK 快速开发示例应用程序,以从网络上的网页获取数据,解释它(XML、JSON 等)并将其显示在屏幕上。

所以我的问题是:是否可以在现有应用程序中创建某种 Web 服务(无需设置整个 IIS 服务器),其中包含带有一些 XML 数据的网页,我可以在给定的时间间隔刷新这些数据,并且是可以从同一网络上的计算机访问吗?我应该怎么做,使用哪种技术?

或者有其他方法可以实现这样的目标吗?


我使用 C# HttpListener 如下...

private void CreateListener
{
    HttpListener listener = null;
    HttpListenerContext context = null;
    HttpListenerRequest request = null;
    HttpListenerResponse response = null;
    string PortNumber = "9876";
    string requestUrl;
    Boolean listen = false;

    try
    {
        if (listener == null)
        {
            listener = new HttpListener();
            listener.Prefixes.Add("http://*:" + PortNumber + "/");
            listener.Start();
            listen = true;
            while (listen)
            {
                try
                {
                    context = listener.GetContext();
                }
                catch (Exception e)
                {
                    listen = false;
                }
                if (listen)
                {
                    request = context.Request;
                    requestUrl = request.Url.ToString();

                    // Process request and/or request Url
                }
            }
        }
    }
}

基本上listener.GetContext();阻塞直到收到 HTTP 请求。然后你可以使用request = context.Request检索 HTTP 请求数据并对其进行处理。然后你可以使用context.Response返回响应。

实施和适应相当简单。

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

如何通过本地网络在 C# 桌面应用程序和移动(android)设备之间进行通信? [关闭] 的相关文章

随机推荐

  • 来自asp.net 会员身份验证的userid?

    我正在使用 asp net 登录控件进行用户身份验证 我的应用程序的许多表中也有 userID 目前 开发目的 userID 是我正在编写的 int 但是 我想开始在表中使用框架的用户 ID 在哪里以及如何访问实际的用户 ID 及其数据类型
  • 无法加载扩展类 org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl

    我正在为 cxf 配置的类上运行 junit 我收到这个错误 导致 org apache cxf bus extension ExtensionException 无法加载扩展类org apache cxf ws policy Assert
  • python - 读取不同编码的各种文件

    我建了一个Python 隐写器 https codereview stackexchange com questions 165163 python steganographer using pil隐藏着UTF 8图像中的文本 效果很好 我
  • using 语句和受保护的构造函数[重复]

    这个问题在这里已经有答案了 class A protected A int struct B public A public using A A void print B b int main int argc char argv prin
  • 允许用户池中的 Cognito 用户访问 S3 存储桶的存储桶策略

    我正在尝试向我的存储桶添加存储桶策略 因为我的存储桶位于根 aws 账户中 并且我想限制根账户下的其他用户 角色等访问我的存储桶 但我的用户中的特定 Cognito 用户除外水池 我不想也使用身份池 我只想将 Cognito 用户称为我的存
  • Netty的并发编码

    编码器的encode方法会并发执行吗 我观察到编码方法可能是由不同线程并发的 管道定义为 Channels pipeline idleHandler new AmfDecoder
  • MongoDB 我应该将用户放在管理数据库还是本地数据库中

    MongoDB 中是否有关于我应该将数据库用户放在哪里的最佳实践 我刚刚设置了一个本地 MongoDB 服务器 并在管理数据库中添加了用户 并授予他们对 他们的 我的意思是用户有权访问的唯一数据库 数据库的访问权限 您认为将用户放入 他们的
  • PHP删除具有特定键重复值的关联数组的数组[重复]

    这个问题在这里已经有答案了 我有一个关联数组的数组 array xxx 0 gt array 3 group id gt 2 contact gt foo contact email gt email protected cdn cgi l
  • 隐藏/不可见 Matplotlib 图

    我有一个问题 不确定它是否困难 但我尝试用谷歌搜索答案 没有什么值得的 我的图形是全局的 可以在所有线程中访问 但它出现在程序的开头 我想在脚本的开头隐藏或使其不可见 然后在代码中的某一点使其可用或可见 有没有像visible False之
  • Html 5 本地存储在 Firefox 中不持久

    我做了一个简单的功能 localStorage setItem foo bar alert localStorage getItem foo 如果我像这样运行它就可以了 如果我在运行一次后删除第一行并且只允许这个 alert localSt
  • 如何在反应中为滑动器创建自定义导航按钮?

    Swiper React 有一个文档 但没有解释如何添加自定义导航按钮 我尝试了这个但没有成功 我正在使用 swiper 8 0 5
  • 使用 C# 在 html 文档中抓取由 JavaScript 动态生成的数据

    如何使用 C 抓取 html 文档中由 JavaScript 动态生成的数据 Using WebRequest and HttpWebResponse在C 库中 我能够以字符串形式获取整个html源代码 但困难在于源代码中不包含我想要的数据
  • 触发自定义类事件后,表单未更新

    我遇到一个问题 即使我看到事件触发 我的主表单也没有更新 让我解释一下情况并分享一些我的代码 因为我是业余爱好者 所以我确信这些代码会很糟糕 我创建了一个类来获取在后台运行进程的设置 我在该类中添加了一些自定义事件 以便我可以在表单中使用它
  • C# 泛型无法识别类型

    我不明白为什么下面的代码返回一个Cannot resolve method Write T 这对我来说似乎很明确 private static void WriteToDisk
  • 如何将您的代码上传到 Google Glass?

    我正在学习android和GDK 我安装了 Android开发者工具 和 SDK管理器 我制作了第一个 hello world 应用程序 但我不知道如何从 Windows 7 PC 连接到我的 Google Glass 来上传代码 如果有人
  • 如何释放记录中的对象?

    我想我遇到了一个棘手的情况 我需要能够释放一个记录字段的对象 如果它是一个类 我通常会在析构函数中编写清理代码 但是由于记录类型不能引入 析构函数 那么如何调用TObject 字段 Free 我预测会有两种类型的使用 用新记录替换记录 我认
  • 并发调用缓存方法

    我正在使用带有 Guava 缓存的 Spring 缓存抽象 我有一个带有 Cacheable 注释和参数 用作缓存键 的方法 用于将值放入缓存中 但该方法是在多线程环境中访问的 因此存在多个并发调用具有相同参数值的方法 因此 这意味着创建要
  • JavaScript 音频循环

    我想在后台播放音频 3 次 3 次后音频将自动停止 我已经尝试过这段代码 但它不起作用 HTML 代码
  • 在 XAML 中设置 TextBlock 的最大字符长度

    如何设置允许用户在 xaml 的 TextBlock 中输入的字符数 我会在模型上执行此操作还是创建某种自定义属性来处理它 TextBlock 没有 MaxLength Label 也没有 文本框可以 除非您对其进行了修改 否则用户无法向
  • 如何通过本地网络在 C# 桌面应用程序和移动(android)设备之间进行通信? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个 C net 3 5 桌面应用程序 可以在屏幕上打印一些数字 现在我想将其扩展到移动设备 在我的例子中是 Android 设备