![]() |
![]() ![]() |
![]() |
-gala- |
![]()
Post
#1
|
Goście ![]() |
Witam,
Chciałbym zrobić coś takiego. Przetestować serwer na możliwość transmisji danych poprzez protokół tcp na wybranym porcie. Wyglądałoby to tak. Na jednym serwerze mam odpalony kod w php, który nasłuchuje na podanym porcie. Na innym serwerze mam kod, który próbuje przesłać coś na drugi serwer. Jeżeli uda im się nawiązać kontakt, to dane są przesyłane i wyświetlane odpowiednie komunikaty no i sam komunikat. Jak to zrobić najprościej w php v. 4 ![]() Znalazłem w sieci taki oto kod, który realizuje jak sądze to zadanie, ale jest przeznaczony dla php 5 - niestety. Może znajdzie się ktoś kto będzie potrafił to przetrawić na php 4 ? Byłbym ogromnie wdzięczny. Kod Wersja dla "serwer"
<?php while (true) { // disconnected every 5 seconds... receive_message('127.0.0.1','85',5); } function receive_message($ipServer,$portNumber,$nbSecondsIdle) { // creating the socket... $socket = stream_socket_server('tcp://'.$ipServer.':'.$portNumber, $errno, $errstr); if (!$socket) { echo "$errstr ($errno)<br />\n"; } else { // while there is connection, i'll receive it... if I didn't receive a message within $nbSecondsIdle seconds, the following function will stop. while ($conn = @stream_socket_accept($socket,$nbSecondsIdle)) { $message= fread($conn, 1024); echo 'I have received that : '.$message; fputs ($conn, "OK\n"); fclose ($conn); } fclose($socket); } } ?> Wersja dla "client" <?php send_message('127.0.0.1','85','Message to send...'); function send_message($ipServer,$portServer,$message) { $fp = stream_socket_client("tcp://$ipServer:$portServer", $errno, $errstr); if (!$fp) { echo "ERREUR : $errno - $errstr<br />\n"; } else { fwrite($fp,"$message\n"); $response = fread($fp, 4); if ($response != "OK\n") {echo 'The command couldn\'t be executed...\ncause :'.$response;} else {echo 'Execution successfull...';} fclose($fp); } } ?> |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 15:14 |