Выложил только кусок кода socket_create() прописывал выше и в сообщение не включал.
полный код
<?php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$address ="192.168.0.120";
$service_port = "11000";
$result = socket_connect($sock, $address, $service_port);
if ($result === false) {
echo "Не получилось выполнить функцию socket_connect().\nПричина: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "OK.\n";
}
//результат OK
$msg = unpack("H*", '192.168.1.204 9 0 09760372 m203read ks');
$sda = $msg[1];
echo "<br>";
$len = strlen($sda);
socket_sendto($sock, $sda, $len, 0, '192.168.0.1', 11000);
$buf = 'This my buff';
if (false !== ($bytes = socket_recv($sock, $buf, 2048, MSG_WAITALL))) {
echo "readed $bytes bytes from socket_recv(). close...";
} else {
echo "Dont can read becouse " . socket_strerror(socket_last_error($sock)) . "\n";
}
//результат: Dont can read becouse Операция успешно завершена.
// вот эта операция успешно завершена и вводит в ступор. Получается что запрос на адрес все таки прошел, но к примеру не был обработан (не тот формат данных к примеру)???
$bytes = socket_recv($sock, $buf, 2048, MSG_DONTWAIT);
print_r($bytes);
socket_close($sock);
Про soket bind спасибо. Можете посоветовать какой нибудь учебник где есть главы о работе с сокетами?
php.net листаю регулярно, но как показал данный случай нужно иметь более общее представление что вообще требуется для работы а не только отдельные функции.