Also ich versuche, eine gehostete Website zu bekommen (nennen wir es online.com) in der Lage sein, einige Textdateien von meinem lokalen Apache (WAMP) zu greifen.Socket-Verbindung zu localhost ist Zeitüberschreitung
Allerdings, wenn ich den Code online.com lädt lädt für eine Weile dann Fehler 100 (Zeitüberschreitung). Ich weiß nicht warum.
Ich benutze Sockets, um dies zu tun. Ich habe die IP für online.com auf der Firewall meines PCs auf die weiße Liste gesetzt. Ich habe den Überwachungsport dem Apache-Server hinzugefügt. Ich habe die Portweiterleitung gemacht (obwohl ich mir nicht 100% sicher bin, ob ich das richtig gemacht habe).
Das Folgende ist eine symbolische Darstellung des Obigen.
Port-Forwarding
online.com's IP = X, port = 80
local host's IP = (used ipconfig) IPV4 Address, port = Y
Apache
Listening on port Y
Weiß aufgeführt
Added IP X
Als ich das laufen PHP-Skript auf online.com
if (!($sock = socket_create(AF_INET, SOCK_STREAM, 0)))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't create socket: [$errorcode] $errormsg \n");
}
echo "Socket created \n";
// Connect socket to remote server
**if (!socket_connect($sock, 'IP X', PORTY))**
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not connect: [$errorcode] $errormsg \n");
}
echo "Connection established \n";
$message = "GET/PRCC /HTTP/1.1 \r\n\r\n";
// Send the message to the server
if (!socket_send($sock, $message, strlen($message) , 0))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not send data: [$errorcode] $errormsg \n");
}
echo "Message send successfully \n";
$buf = "";
// Now receive reply from server
if (socket_recv($sock, $buf, 2045, MSG_WAITALL) === FALSE)
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not receive data: [$errorcode] $errormsg \n");
}
// print the received message
echo $buf . "this is the buffer";
socket_close($sock);
Die Linie if(!socket_connect($sock , 'IP X' , PORT Y))
ist die Ursache des Problems.
Irgendwelche Vorschläge über was könnte falsch sein, würde sehr geschätzt werden.
Was ist die Fehlermeldung? Ist das ein bestimmter Fehler, nachdem die Verbindung fehlgeschlagen ist? – gladiola