生成套接字服务器,返回端口,并继续运行

时间:2015-08-25 16:14:56

标签: php multithreading sockets

我希望有一个Web应用程序在后台生成一个套接字服务器线程。每个PHP会话都有自己的线程,并且可以有任意数量的线程。

我使用零端口绑定套接字,以便它选择一个随机的开放端口。我的套接字服务器正确启动,并且没有问题地进入它的监听循环。但是,我遇到的问题是,使用shell_exec()启动线程的PHP脚本需要从线程获得响应,指示必须使用哪个端口进行通信。问题是如果我启动线程并等待响应,客户端脚本将等待服务器线程完成,而不是继续通过套接字与它通信。

有没有办法让PHP从CLI或shell_exec()运行时说“好吧,那是我输出的最后一个,继续并继续。”?

我的结构大部分如下:

Server.php

Start socket listener
Output chosen port
Do { Application Loop }

Client.php

Start Session
If !Session['port'] {
    Start Server.php, receive Port //This is where it waits forever
}
Communicate with server thread via Port

我希望这很清楚。如果不是,请发表评论。

1 个答案:

答案 0 :(得分:0)


您可以使用PHP_THREAD :)
另外,你可以看看我的Github项目,它包括Socket和Thread示例,我认为它可以帮助你:ANYEM_THREAD_TEST