我在PHP中试用套接字。我只对C#,Java和Basic中的这些东西有过经验。在C#和Java中,有一个名为" Connected"或" isConnected",但在PHP中,我找不到这样的功能来检查套接字是否仍然连接。 我读过我发送或接收要检查的数据,但有没有办法检查套接字的连接状态而不发送或接收,因为检查必须在if子句中,新的套接字将是在数组中创建或旧的将使用。发送和接收数据是另一个功能。
一些有效的代码,但总是在数组中使用新条目......
$Worker = Array();
while($this->Listener)
{
$accept = socket_accept($this->Listener);
if($accept)
{
$jumpout = false;
for($i = 0; $i < count($Worker); $i++)
{
if(!$Worker[$i]) // check whether socket is connected or not
{
$Worker[$i] = $accept;
unset($accept);
$this->Logger->Write("New Client connected - " . $i);
$jumpout = true;
}
}
if(!$jumpout)
{
$Worker[count($Worker)] = $accept;
unset($accept);
$this->Logger->Write("New Client connected - " . (count($Worker) + 1));
}
}
socket_listen($this->Listener);
}
在没有使用复杂的线程或其他复杂的东西的情况下,是否不给套接字任何事件或选项?
答案 0 :(得分:-1)
使用if else尝试socket_get_status。它应该返回套接字的状态。
要详细了解如何使用它,请参阅以下示例:http://php.net/manual/en/function.socket-get-status.php