Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2012, 15:22   #1
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
Вопрос php - сокеты - создать сокет по доменному имени сервера

Здравствуйте
нужно создать сокет и подключить его к сервер не зная его ip.
PHP код:
$host 'http://test.example.com/destination';
$service_port 80;

$str_request file_get_contents("php://input");

$address gethostbyname($host);

$socket socket_create(AF_INETSOCK_STREAM0);
socket_connect($socket$address$service_port);

$request "POST / HTTP/1.0\r\n";
$request .= "Content-Type: application/xml\r\n\r\n";
$request .= $str_request;

socket_write($socket$requestmb_strlen($request));

$result '';
while (
$out socket_read($socket2048000)){
    
$result .= $out;
}
echo 
$result;

socket_close($socket); 
в ответ получаю:
Цитата:
Warning: socket_connect() [function.socket-connect]: Host lookup failed [0]

Warning: socket_write() [function.socket-write]: unable to write to socket [0](when sending on a datagram socket using a sendto call) no address was supplied.

Warning: socket_read() [function.socket-read]: unable to read from socket [0]: (when sending on a datagram socket using a sendto call) no address was supplied.
Как это сделать?
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Старый 18.04.2012, 16:19   #2
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

ping test.example.com и будет вам ip сервера
nec117 вне форума Ответить с цитированием
Старый 19.04.2012, 17:59   #3
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию

Цитата:
Сообщение от nec117 Посмотреть сообщение
ping test.example.com и будет вам ip сервера
юморист однако.

все проще оказалось
решение:
PHP код:
$host 'http://test.example.com/destination/';
$request file_get_contents("php://input");
$opts = array(
    
'http'=>array(
        
'method'=>"POST",
        
'header'=>"Content-type: mime тип данных \r\n" .
        
"Content-length: ".mb_strlen($request)."\r\n\r\n",
        
'Content'=>$request,
    )
);
$context stream_context_create($opts);
echo 
file_get_contents($hostfalse$context); 
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка подключения сервера к клиенту через сокеты vaan.sk C/C++ Сетевое программирование 3 06.08.2013 12:02
PHP date сервера Abuhamed PHP 7 05.04.2011 20:22
PHP для веб-сервера Terazoid C/C++ Сетевое программирование 0 24.03.2011 01:52
Ограничение доступа на редактирование по IP адрессу или по доменному имени компьютера zenner Microsoft Office Excel 2 23.06.2010 20:56
Как создать элемент заранее определенного имени. dampirik Общие вопросы .NET 4 25.04.2010 18:05