【问题标题】:http server in phpphp中的http服务器
【发布时间】:2011-08-27 21:16:36
【问题描述】:

我想为多个客户端的 php 中的服务器创建 http 套接字连接。我怎样才能做到这一点 ?我需要一些资源。

首先我试图在 java 中创建服务器。我在 java 中创建服务器。并试图从android应用程序访问。但是服务器找不到任何客户端。但是当我在java中创建客户端时。它正在工作。我该如何解决这个问题???

【问题讨论】:

  • 请务必注意执行超时。此外,据我所知,它缺少您在大多数 Web 服务器中看到的线程。如果可能,另一种语言可能是更好的选择。
  • 您可以查看 Nanoserv nanoserv.si.kz 或 PEARs Net_Server pear.php.net/package/Net_Server
  • 您使用的是什么网络服务器?或者您想创建自己的网络服务器?这不是重新发明轮子吗?

标签: java php httpserver java-server


【解决方案1】:

虽然我喜欢 php 和 java,但我用 c++ 编写了我的套接字服务器,在亚马逊 ec2 云服务器的灯下运行。它的编码和调试非常非常简单且安全,您实际上只需复制/粘贴示例即可。

从长远来看,由于可移植性和可扩展性,我可能会开发一个 java 解决方案,但是让 c++ 解决方案工作的最初努力比实现一个 java 解决方案要少得多......

您必须确定(找出)的第一件事是您的服务器是否允许您打开自定义端口。 amazon ec2 可以,目前(2 月 13 日)可以免费使用 12 个月。

所以,如果你赶时间,这是给你的:

this here set of examples 拥有您立即启动和运行所需的一切。

【讨论】:

    【解决方案2】:

    您正在尝试使用 PHP 来做什么?请注意,我喜欢 PHP 并且几乎每天都在使用它,但请记住 PHP 本身是基于请求和响应的,不太适合长时间运行的进程。以一种练习的方式,这可能会很有趣,但是如果您尝试使用 PHP 从头开始​​编写 Web 服务器,您可能需要重新考虑您选择的语言。

    也就是说,您可以create a socket 充当服务器,并监听传入的数据包。不过,我仍然认为你是在重新发明轮子。

    【讨论】:

    • nanoweb.si.kz,它在 PHP4 上的性能确实优于 Apache 2.0。虽然它不能完全替代生产设置,但可以适用于某些应用设置。
    • 我至少可以说出五个性能优于 Apache 2.0 的不同网络服务器。这并不意味着重新构建它是一个好主意。
    • @BerryLangerak 你绝对正确:php 不适合这个 - 即使你可以获得 php 代码来打开一个套接字 4 u 并听一会儿
    【解决方案3】:

    从问题标题来看(其余的只会让问题更加混乱),您可以使用现有的包如http://pear.php.net/package/HTTP_Server 在 PHP 中实现网络服务器。它已经包含所有socket 代码来接受客户端连接和东西。

    那么我必须做什么才能从不同的客户端找到服务器

    “发现”这个话题太宽泛了。取决于你的实际设置。在 LAN 上,有一些可发现性协议。否则,您应该只依赖于实例化服务器的固定机器名称和端口号。您可以连接到它,例如http://localhost:8007/ 或任何您预定义的内容。

    【讨论】:

      【解决方案4】:

      我个人认为这将是一个非常糟糕的主意,正如已经提到的那样,它缺少线程,并且它的 Socket 支持 (imo) 并不是那么适应。

      唯一的好处是您可以使用fork 分叉另一个 PHP 进程来处理客户端,但您会变得非常复杂。

      另一种语言会更适合这种类型的开发。

      请注意,即使您确实在 PHP 中执行此操作,您也可能无论如何都必须依赖外部服务,甚至可能最终至少用另一种语言编写一些代码。

      【讨论】:

        【解决方案5】:
        猜你喜欢
        • 2018-05-11
        • 2018-07-05
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多