循环迭代中的PHP套接字客户端

时间:2013-08-30 07:57:20

标签: php sockets loops

我想在PHP中实现一个客户端套接字。

套接字类型是TCP / IP并运行全双工通道。 客户端必须每秒向服务器发送一次请求,因此必须在循环中运行。

我是否必须为每个请求重新创建并连接到套接字? 或者通过循环创建并连接到外部插槽然后管理通信是否更好?

<?php
   while (true) {
      //management of the pid here
      //create the socket
      $socket = socket_create (AF_INET, SOCK_STREAM, 0);
      //send the request
      $sent = socket_write ($socket, <query>, <length>);
      //get the answer
      $response = socket_read ($socket, 1024);
      //close the socket
      socket_shutdown ($socket, 2);
      usleep (500);/ / wait remote host
      socket_close ($socket);
      sleep (1);
   }
?>

我已经在循环外部实现了套接字连接,并在内部管理请求。

但是连接保持活动状态几分钟,然后在端点连接上返回错误。

在这种情况下是否有必要使用socket_bind?

谢谢。

2 个答案:

答案 0 :(得分:0)

您应该在循环外部连接套接字,然后将其用于整个应用程序会话。循环结束时断开插座。

答案 1 :(得分:0)

创建套接字会消耗大量资源,因为您没有连接到多个点,所以应该在循环外创建套接字。