我想为多个客户端在 php 中为服务器创建 http 套接字连接。我怎样才能做到这一点 ?我需要一些资源。
首先,我试图在 java 中创建服务器。我在 java 中创建服务器。并试图从android应用程序访问。但是服务器找不到任何客户端。但是当我在java中创建客户端时。它正在工作。我该如何解决这个问题???
我想为多个客户端在 php 中为服务器创建 http 套接字连接。我怎样才能做到这一点 ?我需要一些资源。
首先,我试图在 java 中创建服务器。我在 java 中创建服务器。并试图从android应用程序访问。但是服务器找不到任何客户端。但是当我在java中创建客户端时。它正在工作。我该如何解决这个问题???
就我个人而言,我认为这将是一个非常糟糕的主意,正如已经提到的那样,它缺少线程,并且它的 Socket 支持 (imo) 并不是那么适应性强。
唯一的优点是您可以使用fork
fork 另一个 PHP 进程来处理客户端,但您会变得非常复杂。
另一种语言将更适合这种类型的开发。
请注意,即使您在 PHP 中执行此操作,您也可能无论如何都必须依赖外部服务,甚至最终可能至少要用另一种语言编写一些代码。
虽然我喜欢 php 和 java,但我用 c++ 编写了我的套接字服务器,在亚马逊 ec2 云服务器的灯下运行。它的编码和调试非常非常简单且安全,您实际上只需复制/粘贴示例即可。
从长远来看,由于可移植性和可扩展性,我可能会开发一个 java 解决方案,但是让 c++ 解决方案工作的最初努力比实现一个 java 解决方案要少得多......
您必须确定(找出)的第一件事是您的服务器是否允许您打开自定义端口。amazon ec2 在这个时间点(2 月 13 日)可以免费使用 12 个月。
所以,如果你赶时间,这是给你的:
此处的这组示例具有您立即启动和运行所需的一切。
你想用 PHP 做什么?请注意,我喜欢 PHP 并且几乎每天都在使用它,但请记住 PHP 本身是基于请求和响应的,不太适合长时间运行的进程。以一种练习的方式,这可能很有趣,但是如果您尝试使用 PHP 从头开始编写 Web 服务器,您可能需要重新考虑您选择的语言。
也就是说,您可以创建一个充当服务器的套接字,并监听传入的数据包。我仍然认为你在重新发明轮子。
从问题标题来看(其余的只会让它更加混乱),您可以使用诸如http://pear.php.net/package/HTTP_Server之类的现有包在 PHP 中实现网络服务器。它已经包含socket
接受客户端连接和内容的所有代码。
所以我必须做些什么才能从不同的客户端找到服务器
“寻找”这个话题太宽泛了。取决于你的实际设置。在 LAN 上,有一些可发现性协议。否则,您应该只依赖于实例化服务器的固定机器名称和端口号。您可以以例如http://localhost:8007/
或任何您预定义的方式连接到它。