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:
<?php
// Deze variabelen gebruiken we later
$errno = 0;
$errstr = "";
// Open de socket
$socket = fsockopen('www.voorbeeld.nl', 80, $errno, $errstr);
// Kijken of het is gelukt
if ($socket === false) {
// Er is iets misgegaan
echo "De socket kon niet geopend worden.\n";
echo "De volgende fout deed zich voor:\n";
echo "(" . $errno . ") : " . $errstr . "\n";
} else {
// Deze data gaan we versturen
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.voorbeeld.nl\r\n";
$out .= "Connection: close\r\n\r\n";
// Schrijven/versturen
fwrite($socket, $out);
// En nu lezen, eerst kijken of er nog gelezen kan worden
while (!feof($socket)) {
// Er kan gelezen worden, lees 128 bytes uit
echo fgets($socket, 128);
}
// Sluit de verbinding
fclose($socket);
}
?>
<?php // Deze variabelen gebruiken we later $errno = 0; $errstr = ""; // Open de socket $socket = fsockopen('www.voorbeeld.nl', 80, $errno, $errstr); // Kijken of het is gelukt if ($socket === false) { // Er is iets misgegaan echo "De socket kon niet geopend worden.\n"; echo "De volgende fout deed zich voor:\n"; echo "(" . $errno . ") : " . $errstr . "\n"; } else { // Deze data gaan we versturen $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.voorbeeld.nl\r\n"; $out .= "Connection: close\r\n\r\n"; // Schrijven/versturen // En nu lezen, eerst kijken of er nog gelezen kan worden // Er kan gelezen worden, lees 128 bytes uit } // Sluit de verbinding } ?>
|
|
|
|
|
|