Cześć. Próbuje zmusić skrypt do wysłania jednego stringa przez socketa. Próbowałem w ten sposób:

  1. <?php
  2. $host = "127.0.0.1";
  3. $port = 2012;
  4. $fp = fsockopen($host, $port);
  5. if (!$fp)
  6. {
  7. $result = "Error: could not open socket connection";
  8. }
  9. else
  10. {
  11. fputs ($fp, "do_wyslania");
  12. fclose ($fp);
  13. }
  14. ?>


Ale po wykonaniu linii $fp = fsockopen($host, $port); przeglądarka mieli przez pół minuty i wyskakuje mi 504 Gateway time out.

Próbowałem też w ten sposób:

  1. <?php
  2. $host = "127.0.0.1";
  3. $port = 2012;
  4. $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
  5. $result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
  6. $spawn = socket_accept($socket) or die("Could not accept incoming connection\n");
  7. $output = "do_wyslania";
  8. socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n");
  9. socket_close($spawn);
  10. socket_close($socket);
  11. ?>


Ale wtedy przy linii $spawn = socket_accept($socket) or die("Could not accept incoming connection\n"); wyskakuje błąd:
Warning: socket_accept() [function.socket-accept]: unable to accept incoming connection [0]: Został dostarczony nieprawidłowy argument. in C:\serwer\Apache2.2\htdocs\verify\index.php on line 7
Could not accept incoming connection

Ja potrzebuję tylko wysłać określony string pod określony IP i port. żadnego odbierania, tylko wysyłanie. Dodatkowo mam pytanie jak wygląda obsługa 127.0.0.1, tzn chyba dwa programy nie mogą miec otwartego tego samego portu na 127.0.0.1. Jeśli coś wyśle na 127.0.0.1:2012, to na którym porcie to przyjdzie?

Proszę o pomoc:)