Hallo Leute,
Ich habe eine Frage zur Server-/Clientprogrammierung. Und zwar wollte ich mit Xampp einen PHP-Server programmieren, der auf TCP Verbindungen wartet.
Wenn sich jemand verbindet und eine Nachricht schickt, schickt der Server die gleiche Nachricht zurück. Das Ganze klappt auch, nur dauert das etwas lange
(zwischen unter 1 Sek und 3Minuten). Das Verbindendes Clients und abschicken der Nachricht geht sehr schnell. Das Warten auf die Antwort dauert lange.
Gibt es da Einstellungen, dass ich das schneller hinbekomme kann? ...Weiß auch nicht, ob ich beser Port 80 oder irgendeinen ala 34567 nehmen
soll. Mein derzeitiger Code sieht so aus:
Falls der Code des Clients gewünscht wird, kann ich den auch noch reinststellen.
Danke schonmal!
Mfg theundertaker
ps: eventuell bin ich im falschen Unterforum. War mir nicht sicher, ob es in Einsteiger oder Server-hostig gehört.
pps: könnte evtl die funktion tcp_nodelay() Abhilfe schaffen, die ich dann per socket_set_option() einstelle?
Ich habe eine Frage zur Server-/Clientprogrammierung. Und zwar wollte ich mit Xampp einen PHP-Server programmieren, der auf TCP Verbindungen wartet.
Wenn sich jemand verbindet und eine Nachricht schickt, schickt der Server die gleiche Nachricht zurück. Das Ganze klappt auch, nur dauert das etwas lange
(zwischen unter 1 Sek und 3Minuten). Das Verbindendes Clients und abschicken der Nachricht geht sehr schnell. Das Warten auf die Antwort dauert lange.
Gibt es da Einstellungen, dass ich das schneller hinbekomme kann? ...Weiß auch nicht, ob ich beser Port 80 oder irgendeinen ala 34567 nehmen
soll. Mein derzeitiger Code sieht so aus:
PHP-Code:
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<?php
error_reporting (E_ALL);
/* Das Skript wartet auf hereinkommende Verbindungsanforderungen. */
set_time_limit(0);
/* Die implizite Ausgabe wird eingeschaltet, so dass man sieht,
* was gesendet wurde. */
ob_implicit_flush ();
$address = '192.168.xxx.xxx';
$port = 80;
if(($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
echo "socket_create() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error()) . "\n";
}
if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error($sock)) . "\n";
}
if (socket_listen($sock, 5) === false) {
echo "socket_listen() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error($sock)) . "\n";
}
if (($msgsock = socket_accept($sock)) === false) {
echo "socket_accept() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error($sock)) . "\n";
break;
}
//$buf = socket_read($msgsock,4);//, PHP_BINARY_READ)
socket_recv($msgsock, $buf, 4, MSG_WAITALL );
socket_write($msgsock, $buf, strlen($buf));
socket_close ($msgsock);
socket_close ($sock);
?>
</body>
</html>
Danke schonmal!
Mfg theundertaker
ps: eventuell bin ich im falschen Unterforum. War mir nicht sicher, ob es in Einsteiger oder Server-hostig gehört.
pps: könnte evtl die funktion tcp_nodelay() Abhilfe schaffen, die ich dann per socket_set_option() einstelle?


Kommentar