/** * Send request * * @param Socket $socket * @param RequestInterface $request * @param callable $onSuccess * @param callable $onFailure * * @return boolean */ protected function sendRequest(Socket $socket, RequestInterface $request, $onSuccess, $onFailure) { $data = trim(RequestSerializer::toString($request)) . "\r\n\r\n"; try { $bytes = $socket->sendTo($data, 0, sprintf('%s:%s', self::MULTICAST_ADDRESS, self::MULTICAST_PORT)); } catch (SocketException $exception) { return $onFailure($socket, $exception); } return $onSuccess($socket, $bytes); }