Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
维护php和java应用程序之间的会话/连接_Java_Php_Mysql_Sockets_Persistence - Fatal编程技术网

维护php和java应用程序之间的会话/连接

维护php和java应用程序之间的会话/连接,java,php,mysql,sockets,persistence,Java,Php,Mysql,Sockets,Persistence,A) 如果我有一个java应用程序,它启动并在指定端口上等待套接字连接。有没有一种方法可以在用户验证后在php中维护会话连接,即持久连接 B) 我的意思是,我试图理解mysql和php是如何实现的。mysql或php如何知道上次打开的连接是什么,这样您就不必在之后进行mysql\u连接了 C) 在每次页面加载时打开和关闭连接有什么好处吗?还是保持持久连接更好 D) 如果后者在C语言中是正确的,您能否描述或举例说明如何在php-->Java连接中实现它 B) mysql_pconnect()的工作

A) 如果我有一个java应用程序,它启动并在指定端口上等待套接字连接。有没有一种方法可以在用户验证后在php中维护会话连接,即持久连接

B) 我的意思是,我试图理解mysql和php是如何实现的。mysql或php如何知道上次打开的连接是什么,这样您就不必在之后进行mysql\u连接了

C) 在每次页面加载时打开和关闭连接有什么好处吗?还是保持持久连接更好

D) 如果后者在C语言中是正确的,您能否描述或举例说明如何在php-->Java连接中实现它

B) mysql_pconnect()的工作原理取决于web服务器和php的协作方式。web服务器通常会启动一些处理请求的子进程。每个子进程一次只能处理一个请求,并发性是通过向不同的进程发送并发请求来实现的

每个这样的进程都有自己的PHP实例,每个新请求都会重用该实例。这允许PHP模块在请求之间保持一些状态。您不能从常规PHP代码中执行此操作,它必须是一个用C编写的扩展。不过,这并不能保证。进程可以随时终止并重新启动

旁注:当然,并非所有web服务器都使用这样的进程。使用线程方法是相当常见的。不过,这在PHP上不起作用,因为并非所有扩展都是线程安全的。因此,PHP必须始终在创建子进程以处理请求的web服务器上运行。这种模式(MPM)在Apache上称为prefork

C) 正如我所说,你没有选择的余地。但是,在快速网络上,打开新连接的开销非常小