login  Naam:   Wachtwoord: 
Registreer je!
 Overzicht:
Overzicht > PHP > Sockets > fsockopen()

Gebruik:
resource fsockopen ( string target, int port [, int &errno [, string &errstr [, float timeout]]])

Uitleg:
opent een socket (connectie) naar een externe server.
vrij vertaald is het gebruik zo
aanwijzer fsockopen (server, poort, foutnr, antwoord, timeout)

aanwijzer= dit kun je gebruiken om later te wijzen naar welke socket je gebruikt doet (je kan er meerdere openen, dit dient om ze uit elkaar te houden)
server= de host naarwaar je connecteerd
poort=lijkt me logisch: de poort (80 voor http, 110 voor POP3, ...)
foutnr = het nummer van de fout indien er een fout optreed
antwoord= het antwoord van de server ("ok" of "geef login") maar ook de string van de fout indien er een fout was
timeout = in seconden,hoeveel tijd voor hij het opgeeft


Voorbeeld:
<?
$conn_id 
fsockopen ("mail-in.pandora.be""110"$foutnr$antwoord['']); 
?>
zal naar de mailserver van pandora connecteren en het antwoord zal iets zijn dat
naar de username vraagt (like OK, give username ofzo)

Bijdragen :
timmie_loots
Ik vraag me ten zeerste af of de poster hiervan énig verstand van fsockopen() heeft. De uitleg en het voorbeeld is totaal verkeerd, dat is erg jammer.

fsockopen() geeft een resource terug, naar die resource kun je schrijven om gegevens te versturen over de socket (met fwrite()) en je kunt er van lezen om de gegevens die je van de server terugkrijgt op te halen (met fread()). Het antwoord van de server zit dus NIET in de string die de error kan bevatten.

Bovendien is het een hele vreemde reference die je daar doorgeeft, een array element met een lege key in de variabele $antwoord?

Een goed voorbeeld is dus zoiets:

  1. <?php
  2.  
  3. // Deze variabelen gebruiken we later
  4. $errno = 0;
  5. $errstr = "";
  6.  
  7. // Open de socket
  8. $socket = fsockopen('www.voorbeeld.nl', 80, $errno, $errstr);
  9.  
  10. // Kijken of het is gelukt
  11. if ($socket === false) {
  12.  
  13. // Er is iets misgegaan
  14. echo "De socket kon niet geopend worden.\n";
  15. echo "De volgende fout deed zich voor:\n";
  16. echo "(" . $errno . ") : " . $errstr . "\n";
  17.  
  18. } else {
  19.  
  20. // Deze data gaan we versturen
  21. $out = "GET / HTTP/1.1\r\n";
  22. $out .= "Host: www.voorbeeld.nl\r\n";
  23. $out .= "Connection: close\r\n\r\n";
  24.  
  25. // Schrijven/versturen
  26. fwrite($socket, $out);
  27.  
  28. // En nu lezen, eerst kijken of er nog gelezen kan worden
  29. while (!feof($socket)) {
  30.  
  31. // Er kan gelezen worden, lees 128 bytes uit
  32. echo fgets($socket, 128);
  33.  
  34. }
  35.  
  36. // Sluit de verbinding
  37. fclose($socket);
  38.  
  39. }
  40.  
  41. ?>





 Overzicht
fgets()
fputs()
fsockopen()
fwrite()



© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.019s