1

可能重复:
带有 Flash 客户端的 PHP 套接字服务器

我在 Flash 开发人员的帮助下在我的服务器中构建了一个应用程序,他要求我构建一个套接字服务器来与数据库通信。他向我推荐了 JAVA,但我不太擅长 JAVA,我想知道是否可以用 PHP 构建 Socket Server。

我应该允许连接到多个 TCP 客户端连接。我知道在 JAVA 中这是完成思想线程,但我不确定这是否也可以用 PHP 来实现。

有人可以向我展示具有这些特征的 PHP 套接字服务器的基本框架吗?

从连接开始到应用程序结束,连接必须是 TCp(持久)。

4

3 回答 3

2

您必须从命令行将套接字服务器作为服务运行。这是我以前使用过的一部分。它在读取后关闭套接字,但可以轻松修改以保持连接数组。

  • 您必须建立某种看门狗来查看连接是否仍然存在。
  • 您需要一种识别机制来识别不同的连接。

编码:

set_time_limit( 0 );
// Set the ip and port we will listen on
$address = '127.0.0.1';
$port = 6789;

// Create a TCP Stream socket
$sock = socket_create( AF_INET, SOCK_STREAM, 0 ); // 0 for  SQL_TCP
// Bind the socket to an address/port
socket_bind( $sock, 0, $port ) or die( 'Could not bind to address' );  //0 for localhost
// Start listening for connections
socket_listen( $sock );

//loop and listen
while (true) {
  /* Accept incoming  requests and handle them as child processes */
  $client = socket_accept( $sock );
  // Read the input  from the client – 1024000 bytes
  $input = socket_read( $client, 1024000 );

  // from here you need to do your database stuff
  // and handle the response 

   // Display output  back to client
  socket_write( $client, $response );
  socket_close( $client );
}
// Close the master sockets
socket_close( $sock );
于 2012-10-05T09:37:19.217 回答
0

在 Google 代码中有一个用于 PHP 的 WebSocket 服务器和客户端库。它支持闪存客户端。不确定它是否能解决您的问题。

如果您想要一个基本教程,这里是学习链接

如何在 php 中创建套接字服务器

编辑:-查看您的评论后(作为服务连续运行套接字服务器)

这是描述创建套接字服务器并作为进程运行的方式的链接

在 php 中创建一个套接字服务器并作为服务运行

于 2012-10-05T09:36:49.653 回答
0

与其构建“套接字服务器”,不如真正构建一组 Web API(SOAP、REST/JSON 等),以提供对数据库的有限且明确定义的访问。然后让 Flash 应用程序使用它。

您的 Flash 应用程序通过 RESTful 接口或 SOAP/XML 请求发送 JSON。服务器接收它们,与数据库进行适当的交互,并以 XML 或 JSON 的形式再次返回任何所需的结果。

于 2012-10-05T12:47:02.437 回答