PHP套接字客户端循环迭代


PHP socket client in loop itertion

我想用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吗?

谢谢。

您应该在循环外连接一次套接字,然后在整个应用程序会话中使用它。循环结束后,断开插座。

创建套接字会消耗大量资源,并且由于您没有连接到多个点,因此应该在循环之外创建套接字。