1. 游客, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Любая версия Packet Class PW

本贴由 JonMagon2015-03-06 发布. 版块名称: PW Web

  1. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Позволяет собирать и читать пакеты на PHP.
    Слеплен на скорую руку. Приветствуются предложения.

    Структура:
    432.png

    Пример получения ника перса по его ID (в пакете есть и другая инфа, чтобы было, смотреть структуру GRoleBase), чтобы понять работу класса:
    PHP:
    <?
    include(
    "packet_class.php");
    $GetRoleBase = new WritePacket();
    $GetRoleBase -> WriteUInt32(-1); // always
    $GetRoleBase -> WriteUInt32(1024); // userid
    $GetRoleBase -> Pack(0xBC5);

    if (!
    $GetRoleBase -> Send("localhost"29400)) // send to gamedbd
    return;

    $GetRoleBase_Re = new ReadPacket($GetRoleBase); // reading packet from stream
    $packetinfo $GetRoleBase_Re -> ReadPacketInfo(); // read opcode and length
    $GetRoleBase_Re -> ReadUInt32(); // always
    $GetRoleBase_Re -> ReadUInt32(); // retcode
    $GetRoleBase_Re -> ReadUByte(); // version
    $GetRoleBase_Re -> ReadUInt32(); // id
    echo $GetRoleBase_Re -> ReadUString(); // show rolename
    ?>

    附件文件:

    Последнее редактирование: 2015-03-08
    已获得shadowvzs, Agi, Hardx另外10人的支持.
  2. JoLan Команда форума Администратор AngeliCore Программист

    帖子:
    1,061
    支持:
    948
    性别:
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    А в PHP разве нет перегрузки методов?

    代码:
        procedure Write(Value: Byte); overload;
        procedure Write(Value: SmallInt); overload;
        procedure Write(Value: Word); overload;
        procedure Write(Value: Integer); overload;
        procedure Write(Value: Cardinal); overload;
        procedure Write(Value: Int64); overload;
        procedure Write(Value: UInt64); overload;
        procedure Write(Value: Single); overload;
        procedure Write(Value: Real); overload;
        procedure Write(Value: Boolean); overload;
    
  3. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Кому как удобнее. Мне, например, так. Это как Int16/Word.
  4. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    帖子:
    754
    支持:
    1,313
    性别:
    Репутация:
    6
    Там нет обязательного четкого приведения типов. В переменную можно кидать любые типы, или кастовать в нужный по необходимости (при различных операциях сложения и модификаций php может это делать сам), поэтому overload методы тут только добавят гемороя.

    Какой же это UInt если с минусом?)
    已获得JonMagon的支持.
  5. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Разницы все равно нет.
    Последнее редактирование: 2015-04-18
  6. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    帖子:
    754
    支持:
    1,313
    性别:
    Репутация:
    6
    По поводу предложений: ввести 2 переменных done и overflow для проверки статуса после завершения чтения пакета. А также учесть при чтении, что чтение может продолжаться даже после выхода из размеров буфера и добавить соотв. проверки и возврат дефолтного нуля.
    已获得JonMagon的支持.
  7. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Сяп, добавлю, когда в очередной раз спонтанно накроет.
    已获得int 3的支持.
  8. LiptoN[Triton] Пользователи

    帖子:
    441
    支持:
    209
    性别:
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
    ChatBroadCast
    --- добавлено: 6 мар 2015 в 21:54 ---
    Последнее редактирование модератором: 2015-03-14
    已获得VorobeyJonMagon的支持.
  9. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    UPD (thnx @vieraw):
    • Удалена WriteInt32
    • Удалена WriteString
    • Буфер увеличен до 128 кбайт
    • Свойства объявлены как public
    • Переписана функция упаковки в CUInt32
    已获得Merfy10000的支持.
  10. JoLan Команда форума Администратор AngeliCore Программист

    帖子:
    1,061
    支持:
    948
    性别:
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Преложение к размышлению: так же можно читать не через буфер, а напрямую из сокета.
    已获得JonMagon的支持.
Черновик сохранён Черновик удалён
Similar Threads
  1. Quba
    回复:
    1
    浏览:
    2,159
正在加载...

分享此页面