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

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

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

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

我的结构 主要如下:</ p>

Server.php </ p>

 启动套接字侦听器
输出选择端口
Do {应用程序循环}
</ code> </ pre>

Client.php </ p>

  Start Session 
If!Session ['port'] {
Start Server.php,receive 端口//这是它永远等待的地方
}
通过端口与服务器线程通信
</ code> </ pre>

我希望这是明确的。 如果不是,请发表评论。</ p>
</ div>

展开原文

原文

I'm looking to have a web application spawn a socket server thread in the background. Each PHP session gets its own thread, and there can be any number of threads.

I bind the socket using a port of zero, so that it picks a random open port. My socket server starts correctly, and moves into it's listening loop without issue. The issue I have, however, is that my PHP script that starts the thread using shell_exec() needs to get a response from the thread indicating which port must be used to communicate. The problem is that if I start the thread and wait for a response, the client script will sit and wait for the server thread to complete, instead of moving on and communicating with it via sockets.

Is there a way for PHP, when run from CLI or shell_exec() to say, "Okay, that's the last of my output, go ahead and continue on."?

My structure is mostly as follows:

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

I hope this is clear. Please comment if it is not.

1个回答




</ p>

您可以使用 PHP_THREAD :)

另外,您可以看看我的Github项目,它包括Socket和Thread示例,我认为 它可以帮助您: ANYEM_THREAD_TEST </ p>
</ div>

展开原文

原文


You can use PHP_THREAD :)
Also, you can take a look to my Github project, it includes Socket and Thread examples and i think that it can help you : ANYEM_THREAD_TEST

dongtan8122
dongtan8122 关于Thread如何在我的案例中工作,我有点阴暗。 我假设我的服务器将建立套接字,将端口发送回客户端,将套接字传递给线程,然后退出,从而释放客户端继续?
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐