Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php TCP服务器不接受第二个套接字发送_Php_Sockets_Tcp_Telnet_Tcpserver - Fatal编程技术网

Php TCP服务器不接受第二个套接字发送

Php TCP服务器不接受第二个套接字发送,php,sockets,tcp,telnet,tcpserver,Php,Sockets,Tcp,Telnet,Tcpserver,我试图通过php脚本与我的TCP服务器通信,但我只能发送一次命令,如果我再次发送,则在脚本中显示数据已发送,但在服务器中我未收到任何命令。基本上,在发送命令之后,我想发送退出命令并关闭套接字 <?php echo "<br>Message send successfully \n"; if (isset($_POST['action'])) { switch ($_POST['action']) { case 'open': $message = "C

我试图通过php脚本与我的TCP服务器通信,但我只能发送一次命令,如果我再次发送,则在脚本中显示数据已发送,但在服务器中我未收到任何命令。基本上,在发送命令之后,我想发送退出命令并关闭套接字

<?php

echo "<br>Message send successfully \n";
if (isset($_POST['action'])) {
switch ($_POST['action']) {
    case 'open':
        $message = "CO1OX\n";
        break;
    case 'close':
        $message = "CO1CX\n";
        break;
 }
} else {
$error = "Post error";
}


if (!($sock = socket_create(AF_INET, SOCK_STREAM, 0))) {
    $errorcode = socket_last_error();
    $errormsg  = socket_strerror($errorcode);
    die("Couldn't create socket: [$errorcode] $errormsg \n");
}

 echo "Socket created <br/>";
//Connect socket to remote server
if (!socket_connect($sock, '127.0.0.1', 13000)) {
    $errorcode = socket_last_error();
    $errormsg  = socket_strerror($errorcode);
    die("Could not connect: [$errorcode] $errormsg \n");
}
echo "Connection established <br/>";

if (!($sent_data = socket_send($sock, $message, strlen($message), 0)))            
{
    $errorcode = socket_last_error();
    $errormsg  = socket_strerror($errorcode);
    die("Could not send data: [$errorcode] $errormsg \n");
}

 $message="exit\n";
 if(!($sent_data = socket_send($sock, $message, strlen($message),    0))) 
      {
        $errorcode = socket_last_error();
        $errormsg  = socket_strerror($errorcode);
        die("Could not send data: [$errorcode] $errormsg \n");
}
socket_shutdown($sock, 2);
socket_close($sock);
?>

我通过在两条连续消息之间设置1ms的睡眠时间来解决这个问题