<?php
$address = '127.0.0.1';
$port = 1337;
if (($sock = socket_create(AF_INET
, SOCK_STREAM
, SOL_TCP
)) === false) { }
}
}
do {
echo "Не удалось выполнить socket_accept(): причина: " . socket_last_error($sock) . "\n"; continue;
}
$request = "";
if($read == "") break;
$request .= $read;
break;
}
}
if ($read === false) {
}
$response = "HTTP/1.1 200 Ok\r\n";
$response .= "Content-Type: text/html; charset=UTF-8\r\n\r\n";
$response .= "<!DOCTYPE html><html><head></head><body>$request</body></html>";
socketWrite($msgsock, $response);
} while (true);
function socketWrite($msgsock, $buffer) {
if ($bytesSent == $length) {
echo "all bytes have been sent \n";
break;
} else {
$buffer = substr($buffer, $bytesSent); }
}
if ($bytesSent === false) {
}
}
PD9waHAKZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsKIAokYWRkcmVzcyA9ICcxMjcuMC4wLjEnOwokcG9ydCA9IDEzMzc7CiAKaWYgKCgkc29jayA9IHNvY2tldF9jcmVhdGUoQUZfSU5FVCwgU09DS19TVFJFQU0sIFNPTF9UQ1ApKSA9PT0gZmFsc2UpIHsKCWVjaG8gItCd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQvtC30LTQsNGC0Ywg0YHQvtC60LXRgiwg0L/RgNC40YfQuNC90LA6ICIgLiBzb2NrZXRfc3RyZXJyb3Ioc29ja2V0X2xhc3RfZXJyb3IoKSkgLiAiXG4iOwoJZGllOwp9CiAKaWYgKHNvY2tldF9iaW5kKCRzb2NrLCAkYWRkcmVzcywgJHBvcnQpID09PSBmYWxzZSkgewoJZWNobyAi0J3QtSDRg9C00LDQu9C+0YHRjCDQv9GA0LjQstGP0LfQsNGC0Ywg0YHQvtC60LXRgiDQuiDQsNC00YDRgNC10YHRgywg0L/RgNC40YfQuNC90LA6ICIgLiBzb2NrZXRfc3RyZXJyb3Ioc29ja2V0X2xhc3RfZXJyb3IoKSkgLiAiXG4iOwoJZGllOwp9CiAKaWYgKHNvY2tldF9saXN0ZW4oJHNvY2ssIDUpID09PSBmYWxzZSkgewoJZWNobyAi0J3QtSDRg9C00LDQu9C+0YHRjCDQstGL0L/QvtC70L3QuNGC0Ywgc29ja2V0X2xpc3RlbigpOiDQv9GA0LjRh9C40L3QsDogIiAuIHNvY2tldF9zdHJlcnJvcihzb2NrZXRfbGFzdF9lcnJvcigkc29jaykpIC4gIlxuIjsKCWRpZTsKfQogCmRvIHsKCWlmICgoJG1zZ3NvY2sgPSBzb2NrZXRfYWNjZXB0KCRzb2NrKSkgPT09IGZhbHNlKSB7CgkJZWNobyAi0J3QtSDRg9C00LDQu9C+0YHRjCDQstGL0L/QvtC70L3QuNGC0Ywgc29ja2V0X2FjY2VwdCgpOiDQv9GA0LjRh9C40L3QsDogIiAuIHNvY2tldF9sYXN0X2Vycm9yKCRzb2NrKSAuICJcbiI7CiAgICAgICAgY29udGludWU7Cgl9CiAKCSRyZXF1ZXN0ID0gIiI7CiAKCXdoaWxlIChpc19zdHJpbmcoJHJlYWQgPSBzb2NrZXRfcmVhZCgkbXNnc29jaywgMTAyNCkpKSB7CgkJaWYoJHJlYWQgPT0gIiIpIGJyZWFrOwoKCQkkcmVxdWVzdCAuPSAkcmVhZDsKCgkJaWYgKHByZWdfbWF0Y2goIi9cclxuXHJcbi8iLCAkcmVxdWVzdCkpIHsKCQkJJHJlcXVlc3QgPSBpbXBsb2RlKCI8YnI+IiwgcHJlZ19zcGxpdCgiL1xyXG4vIiwgJHJlcXVlc3QpKTsKCQkJYnJlYWs7CgkJfQoJfQogCglpZiAoJHJlYWQgPT09IGZhbHNlKSB7CgkJZWNobyAi0L7RiNC40LHQutCwINGH0YLQtdC90LjRjyDQuNC3INGB0L7QutC10YLQsCwg0L/RgNC40YfQuNC90LA6ICIgLiBzb2NrZXRfbGFzdF9lcnJvcigkbXNnc29jaykgLiAiXG4iOwoJfQogCgkkcmVzcG9uc2UgPSAiSFRUUC8xLjEgMjAwIE9rXHJcbiI7CgkkcmVzcG9uc2UgLj0gIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04XHJcblxyXG4iOwoJJHJlc3BvbnNlIC49ICI8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+JHJlcXVlc3Q8L2JvZHk+PC9odG1sPiI7CiAKCXNvY2tldFdyaXRlKCRtc2dzb2NrLCAkcmVzcG9uc2UpOwp9IHdoaWxlICh0cnVlKTsKIApzb2NrZXRfY2xvc2UoJHNvY2spOwogCmZ1bmN0aW9uIHNvY2tldFdyaXRlKCRtc2dzb2NrLCAkYnVmZmVyKSB7CgkkbGVuZ3RoID0gc3RybGVuKCRidWZmZXIpOwoKCXdoaWxlICgkYnl0ZXNTZW50ID0gc29ja2V0X3dyaXRlKCRtc2dzb2NrLCAkYnVmZmVyKSkgewoJCWlmICgkYnl0ZXNTZW50ID09ICRsZW5ndGgpIHsKCQkJZWNobyAiYWxsIGJ5dGVzIGhhdmUgYmVlbiBzZW50IFxuIjsKCQkJc29ja2V0X2Nsb3NlKCRtc2dzb2NrKTsKCQkJYnJlYWs7CgkJfSBlbHNlIHsKCQkJJGJ1ZmZlciA9IHN1YnN0cigkYnVmZmVyLCAkYnl0ZXNTZW50KTsKCQl9Cgl9CiAKCWlmICgkYnl0ZXNTZW50ID09PSBmYWxzZSkgewoJCWVjaG8gItCd0LUg0YPQtNCw0LvQvtGB0Ywg0LfQsNC/0LjRgdCw0YLRjCDQtNCw0L3QvdGL0LUg0LIg0YHQvtC60LXRgiwg0L/RgNC40YfQuNC90LA6IiAuIHNvY2tldF9zdHJlcnJvcihzb2NrZXRfbGFzdF9lcnJvcigpKTsKCQlzb2NrZXRfY2xvc2UoJG1zZ3NvY2spOwoJfQp9