2013-07-12 70 views
0

我需要在PHP中运行一个c程序来建立套接字连接并从服务器取回结果。使用PHP执行C脚本

我已经写了一个C程序来建立套接字连接,并且服务器接收到请求。

如何将C程序转换为.dll文件以用作PHP扩展?

+0

您是否尝试过使用netcat? –

回答

0

使用套接字,您不能直接运行任何C应用程序。您需要调用该可执行文件来运行。

我的想法是,您可以在远程运行另一个客户端应用程序,并将一些数据发送到套接字,并在远程客户端将收到基于它可以运行他的应用程序的消息。

0

方法1:
您可以接收从客户端发送的文件并将其保存到磁盘。
然后,您可以使用系统来编译收到的文件。
最后一步,您运行它,再次使用系统

但我不建议你这样做,因为它可能是危险的,你永远不知道代码的作用。它可能会删除磁盘中的所有文件。更重要的是,代码依赖的库可能没有安装。

方法2:
使用加载库:
1.所有发送给服务器的代码是实现一个通用接口
2.预编译的代码加载库
2.服务器保存代码到磁盘
3.服务器加载库并调用通用接口
关于加载库的更多信息,请查看it出。

+0

感谢您的回复 – KumarA

0

我们不能直接用PHP运行C程序,因为要运行C脚本,没有带有任何LAMPP,XAMPP,WAMP的编译器。如果我们需要运行任何C脚本,请使用带有ZEND引擎标准的C代码创建PHP扩展(检查语法以从PHP接收C语言中的参数)。

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls|b", &intNumber, &strVal, &return_long) == FAILURE) { 
     RETURN_NULL(); 
    } 

WINDOWS:

请参阅此链接创建与C脚本PHP扩展: http://www.dreamincode.net/forums/topic/244215-introduction-to-creating-a-php-extension-for-windows/ 移动扩展文件到/转/文件夹,并在php.ini文件

添加扩展名

LINUX:

http://linux.ferhatbingol.com/2013/06/06/how-to-create-php-extensions/ 在Linux,默认情况下.so文件将移至/usr/lib中/ PHP5/ XXXXXXXX/extension.so ,在您的PHP.ini文件中指定此扩展路径

然后重新启动Apache服务器,最后我们的PHP扩展将正常工作。