【问题标题】:android service to listen to a specific portandroid服务监听特定端口
【发布时间】:2011-09-14 00:47:19
【问题描述】:

我想知道如何设置一个监听特定端口的安卓服务,例如http://127.0.0.1:12345

【问题讨论】:

    标签: android service port listen


    【解决方案1】:

    实现您的服务并使用ServerSocket 类来侦听传入连接并对其采取行动。不过,不要在你的 UI 线程上调用 ServerSocket.accept()。这将导致您的应用程序没有响应。相反,创建一个新线程或根据您的实际情况,AsyncTask 可能就足够了。

    【讨论】:

    • @Steven Prentice 你好。你的回答真的帮助了我。我在AsyncTask 中尝试过,但失败得很惨。然后我在一个单独的线程中尝试了它,它就像魔术一样工作。我想知道为什么ServerSocket 会这样做。当然,它在 UI 线程中很累,它也在那里失败了。这是为什么 ?如果我不介意我的 Activity 挂起,因为它的唯一目的是在单击按钮时启动服务器?
    • @JasonKrs:它应该与 AsyncTask 一起使用,前提是您在 doInBackground() 中执行 ServerSocket 业务。如果您可以在这里分享代码,那么我们可以提供更多帮助。就 UI 线程而言,这是 Android 提供的限制(可以等待任务在约 5 秒内完成),因为 UI 线程负责很多事情。来自文档:系统不会为组件的每个实例创建单独的线程。在同一进程中运行的所有组件都在 UI 线程中进行实例化,并且从该线程调度对每个组件的系统调用。
    • @UncaughtException Ahhh in doInBackground()... 我想我可能没有那样工作... 也许这就是它失败的原因... 无论如何在 ht e 项目上已经做了很多事情所以我不会重新编程该功能...我将继续使用旧时尚线程。 ;-)
    猜你喜欢
    • 2016-01-07
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 2017-03-13
    • 2017-09-25
    • 1970-01-01
    相关资源
    最近更新 更多