1. Java / Говнокод #4547

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    case 4096:
                                //chat message
                                tmp = new byte[4];
                                System.arraycopy(rp.getData(), 4, tmp, 0, 4); //nick length
                                int nickl = byteToInt(tmp);
                                System.arraycopy(rp.getData(), 8, tmp, 0, 4); //message length
                                int mlen = byteToInt(tmp);
                                tmp = new byte[nickl];
                                System.arraycopy(rp.getData(), 12, tmp, 0, nickl); //retrieving nick
                                String r2Nick = new String(byteToChar(tmp));
                                tmp = new byte[mlen];
                                System.arraycopy(rp.getData(), 12+nickl, tmp, 0, mlen); //message
                                String msg = new String(byteToChar(tmp));
                                System.out.println("<"+r2Nick+"> "+msg);
                            break;

    UDP чат без сервера (т.е. широковещательные UDP запросы).
    всё из той-же серии, что и мой прошлый пост

    Запостил: danilissimus, 06 Ноября 2010

    Комментарии (26) RSS

    • для достижения максимальной сатисфакции следует юзать этот чат в сети с тупыми маршрутизаторами, соединенными каскадом
      Ответить
      • эээ, облажатушки, маршрутизаторами - следует читать коммутаторами
        Ответить
        • Что-то не пойму где "облажатушки", ибо бродкасты через коммутаторы ходят, а вот через маршрутизаторы уже не очень.
          Ответить
          • именно, еще как ходят :)
            каждый кадр содержащий строку "мяффка)" будет вызывать broadcast storm по всей сети :)
            Ответить
            • ну это уже проблемы организации сети. давайте ещё пару сетевушек с одинаковыми маками поставим.
              Ответить
              • нет, это общее свойство протоколов основанных на бродкастах.
                а вот если маршрутизировать между сегментами LAN, а потом городить костыли, чтобы бухгалтер Элеонора могла видеть принтер, вон тот беленький, с кнопочкой - это уже проблемы организации сети, и они только начинаются.

                ЗЫ: даже тупой коммутатор домашней серии локально умеет поймать конфликт адресов и опустить плохие порты
                Ответить
                • Степень тупости вопрос спорный. Что может, а что не может отдельно взятый коммутатор надо читать в описании на него. Потому что сейчас даже самые тупые могут распознавать cross/patch, а лет 5 назад не могли.
                  Ответить
                  • не надо читать, тупые не имеют возможности управления, и соответственно не могут реагировать на шторм
                    Auto-MDIX - функция физического интерфейса, никак не связана с работой микросхемы моста
                    Ответить
                  • тупые/умные это довольно четкий термин)
                    в гугл: managed switch
                    Ответить
                • про бухгалтера:
                  Вы очевидно говорите о "сетевом окружении" винды?

                  да, мастер браузер (хранитель списка компов) по умолчанию ищеца бродкастом (когда мелкомягкие это придумывали -- это было ОК), но проблема решается легко:

                  подымаеца WINS и изменяется тип ноды.

                  вот и все)
                  Ответить
                  • ну да, по 1..2 подпорке на протокол, так и получается
                    Ответить
                    • в "сетевом окружении" используется очень плохой протокол, совершенно не подходящий для интернета и сетей с большим кол-вом компов.
                      увы)
                      Ответить
                      • опять плохой протокол?
                        если что - это называется netbios
                        выборы мастера - через RPC
                        Ответить
                        • а по-Вашему -- хороший?
                          Ответить
                          • Нормальный. Когда LAN становится большой и шумной - нанимают сисадмина и он взгромождает контроллер домена, just as planned. Жадные просто страдают.
                            Ответить
                            • контроллер домена не спасает от браузинга. Разве что он почти всегда выигрывает перевыборы, да позволяет групповой политикой отрубить всем сервис "network browsing", что б они в выборах даже не участвовали.

                              это лечит известную маленьким компаниям проблему "в сетевом окружении иногда не все компы", связанную с тем, что там каждые 15 минут -- новый браузер)
                              Ответить
                              • Ой, да ладно. Там вообще RPC не работает, а воркстанции браузятся через Active Directory. Или мы windows NT 4.0 поминаем?
                                Ответить
                                • Вы не совсем правы.
                                  Через AD раздраются групповые политики и иже с ними, через DNS находятся контроллеры домена, но мастер браузер ищется по-старому: или через WINS или бродкастом, в зависимости от типа ноды.

                                  Возьмите домен на win >= 2000, возьмите клиента (например XP), введенного в этот домен, врубите сниффер, и зайдите в сетевое окружение. Или например введите nbtstat -r

                                  как был netbios так и остался. слава богу хоть по tcp/ip (nbt называется)

                                  Вот поиск контроллера домена действительно перешел на DNS (в отличие от NT), но именно контроллера домена, а не мастер браузера))
                                  Ответить
            • >>каждый кадр
              маршрутизаторы не имеют понятия и кадрах:)

              бродкасты возможны только в рамках одной сети.
              Ответить
    • case 4096 -- мяффка)
      Ответить
      • просто не хотелось использовать 0, 1, 2 итд. хотелось чтобы выглядело приятнее и солиднее )
        Ответить
        • Тогда бы 0x1000 :) хекс кучерявее бухгалтерской десятичной системы.
          Ответить
        • ну да.
          степень двойки.
          все как у больших
          Ответить

    Добавить комментарий