За последние 24 часа нас посетили 18036 программистов и 1599 роботов. Сейчас ищут 887 программистов ...

Бинарная запись в сокет

Тема в разделе "Прочие вопросы по PHP", создана пользователем svebev, 28 ноя 2013.

  1. svebev

    svebev Новичок

    С нами с:
    28 ноя 2013
    Сообщения:
    1
    Симпатии:
    0
    Добрый день! Совсем с ног сбился помогите пожалуйста, существует описание некоего веб-сервиса [​IMG], я делаю так:

    Код (Text):
    1. $sock = fsockopen("xxx.xxx.xxx.xxx", xxxx);
    2. fwrite($sock, pack('N',strlen($message))); //Длина текста сообщения (без заголовка)
    3. fwrite($sock, pack('N',time())); //Время создания запроса (кол-во секунд с 1 января 1970 GMT)
    4. fwrite($sock, pack('N',1234)); //Идентификатор сообщения
    5. fwrite($sock, str_repeat("\0", 32)); //Зарезервировано (заполнено нулевым байтом)
    6. fwrite($sock, pack('n', 6063)); //Идентификатор клиента
    7. fwrite($sock, "\0"); //1-й байт флагов сообщения
    8. fwrite($sock, "\0"); //2-й байт флагов сообщения
    9. fwrite($sock, pack('N', 123)); //Идентификатор симметричного ключа
    10. fwrite($sock, str_repeat("\0", 48)); //Зарезервировано (заполнено нулевым байтом)
    11. while (!feof($sock)) {
    12.     print fread($sock, 100)."\n";
    13. }
    14. fclose($sock);
    Но увы в ответ не ответа ни привета((( хотя по документации, я должен получить в ответ аналогичный заголовок.
    Вопрос: соответствует ли мой сформированный заголовок, описанному на скрине?
    Заранее грандиознейшее спасибо)
     
  2. IvanDraga

    IvanDraga Новичок

    С нами с:
    10 ноя 2013
    Сообщения:
    39
    Симпатии:
    0
    Могу ошибаться, но у вас не указано смещение перед записью в поток.
    http://us3.php.net/fseek
     
  3. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    выглядит всё верно

    Добавлено спустя 4 минуты 18 секунд:
    Но опять таки. Порядок байт верный