Ich versuche mit meinem TCP-Server per PHP-Skript zu kommunizieren, aber ich bin nur in der Lage, Befehl einmal zu senden, und wenn ich wieder sende dann im Skript zeigen, dass Daten gesendet wird, aber in Server ich don Es wird kein Befehl angezeigt. Grundsätzlich möchte ich nach dem Senden des Befehls den Befehl exit senden und den Socket schließen.TCP-Server akzeptiert keine zweite Socket senden
<?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);
?>
Ich habe versucht, mit Telnet zu kommunizieren und es funktioniert gut. Jede Hilfe wäre großartig.