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

发布于 2024-11-02 09:07:05 字数 1435 浏览 1 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

脸赞 2024-11-09 09:07:05

我使用 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 返回响应。

实施和适应相当简单。

I use a C# HttpListener as follows...

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
                }
            }
        }
    }
}

Basically listener.GetContext(); blocks until an HTTP request is received. You can then use request = context.Request to retrive the HTTP request data and process it. You can then use context.Response to return a response.

Fairly simple to implement and adapt.

顾北清歌寒 2024-11-09 09:07:05

您可以在桌面上自行托管 WCF 服务(即,将其托管在您的应用程序中,而不是通过 IIS)。这相对容易做到。

http://msdn.microsoft.com/en-us/library/ms731758.aspx

只需设置您的 WCF 服务即可返回 XML、JSON,无论您想要什么;然后从“droid”设备上点击它。

You can self-host a WCF service service on the desktop (that is, host it within your application rather than through IIS). It's relatively easy to do.

http://msdn.microsoft.com/en-us/library/ms731758.aspx

Just set up your WCF service to return XML, JSON, whatever you want; and then hit it from the 'droid device.

じее 2024-11-09 09:07:05

您可以构建一个使用 Web 技术的 Android 应用程序:HTML、CSS、Javascript - 本质上它就像显示一个网页,但您用一个应用程序将其封装起来。然后,您可以运行从 PC 上通过网络向其提供数据的想法,但不需要真正使用 Android SDK 和 Java。

奥莱利(O'Reilly)有一本关于这个主题的好书:
使用 HTML、CSS 和 JavaScript 构建 Android 应用。看起来甚至可以免费在线访问。

You can build an android app that uses web technologies: HTML, CSS, Javascript - essentially it'd be like showing a web page but you envelope it with an app. Then you can run with the idea of serving data to it on the network from your PC, but don't need to really use the Android SDK and Java.

There's a good O'Reilly book on the subject:
Building Android Apps with HTML, CSS, and JavaScript. Looks like it's even freely accessible online.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文