1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
||||||||||||||||
1 | ||||||||||||||||
Покритикуйте код моего сокет сервера для игрового чата19.05.2012, 17:35. Показов 2880. Ответов 19
Метки нет (Все метки)
С помощью пары уроков, сделал сервер для визуального чата, типа галактики знакомств.
Интересны советы по упрощению и оптимизации. Там в принципе ничего сложного, но названия переменных и комментарии, оставшиеся с уроков, могут сбить с толка. Особенно интересно про многопоточность и работу с БД. Главный сервер
0
|
19.05.2012, 17:35 | |
Ответы с готовыми решениями:
19
Написан код сервера для чата, что дальше? Как установить на VPS Centos 6 ?! Сокет-сервер для чата Оцените и покритикуйте конфигурацию для игрового компьютера. Оцените и покритикуйте конфигурацию для игрового компьютера. |
20.05.2012, 00:20 | 2 | |||||
надо использовать тег [ JAVA ] вокруг кода [ /JAVA ]
а пока первый вопрос - зачем генералсервер экстендит трид если она ему до лампочки и он её не использует?
0
|
1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
|
20.05.2012, 00:34 [ТС] | 4 |
1) Может быть несколько "генерал сервер"
2) Так лучше должна работать многопоточность на многоядерных процах (я так понимаю) 3) Для параллельной работы с клиентами (в генерал сервере тоже потом будет код: реалтайм статистики итп...)
0
|
20.05.2012, 00:44 | 5 | |||||
users++;
не синхронизирован и будет глючить создание IO потоков в триде без контроля, на скажем 5 тыще юзеров будет эксепшн, что не могу алоцировать новый
0
|
1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
|
20.05.2012, 00:48 [ТС] | 6 |
Это ещё тестовый кусок кода =)
Количество юзеров это длина листов. Что простите? Вы это про то, что нужно сделать пул для клиентов?
0
|
1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
|
20.05.2012, 00:54 [ТС] | 8 |
В консоль писать. Просто писать в консоль =)
Добавлено через 1 минуту Спасибо. Сейчас уберу. Это был очередной остаток тестов.
0
|
20.05.2012, 00:57 | 9 | ||||||||||
у вас синхронизация странная какая то
Добавлено через 2 минуты давайте так просьбы 1. уберите весь дебаг и то что закоментировано и уже не нужно. 2. напишите кратенько что творит какой метод и что синхрится и постите на просмотр, ато чесслово в этой куче неудобно рыться
0
|
1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
|
20.05.2012, 01:06 [ТС] | 10 |
Боюсь, что снова не пойму что не так.
То что закоментировано, и есть ранее убранный дебаг. Который только и ждёт момента, чтобы снова заработать. Выложил с ним так, как не нашёл кнопку "удалить" комментарии. Синхронятся там только списки игроков и свойства самих игроков. Алгоритм такой: Сервер создаёт по потоку на подключение Поток читает байты. Если приходит сообщение формата 1 байт (длина длины) 1-9 байт (длина) ~миллиард байт (само сообщение). Если сообщение подходит по формату оно уходит в парсеры - Чата (приват, группа, локация) - Действие (перемещение) Парсер вызывает рассылку в цикле по всем, кому интересно сообщение. Добавлено через 2 минуты Кстати основная цель поста именно правка моего стиля. В общем не объяснить, но думаю есть места где у меня i=i+1 вместо i++, не в прямом смысле конечно.
0
|
20.05.2012, 01:22 | 11 |
1. у вас протокол оперделения типа сообщения жёстко вбит в сервер, это первый минус
2. клиенты могут быть разных типов в будущем, надо отвязаться от реализации через интерфейс 3. в каждом потоке сервера свои userMap и userNickMap и Locations, как вы их соединять будете в одно целое? 4. какую задачу выполняют properties? ну и клиент главный вопрос откуда у клиента взялись проперти сервера да ещё и нафига ему (клиенту) к ним синхронизированный доступ?
0
|
1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
|
20.05.2012, 01:29 [ТС] | 12 |
А что не так? Выбранный формат представляет кучу возможных вариантов. есть "запас прочности".
То есть разных типов? Никак. У каждого они свои. Настройки коннекта к БД. В смысле откуда? Это чтобы с БД работать. А вот синхронизация да, ступил. Можно просто ранить в клиенте копию настроек.
0
|
20.05.2012, 01:32 | 13 |
что вы вкладываете за смысл в слово "стиль"?
есть архитектура приложения, есть его абстракции, есть реализации, есть ошибки и рабочий код на разницу между i++ и i=i+1 в данном случае можно наплевать главное в коде это читабельность кода, это у вас отсутствует, я не понимаю половину вашего кода с первого взгляда и нет комментариев, кроме совсем уже явных кусков. вы не выполняете конвенцию для Java по наименованию методов и проперти. классы находятся в жёсткой зависимости от друг друга, вобщем у вас наблюдается антипатерн "волшебный сервлет" во всей красе. Добавлено через 2 минуты каким образом клиент из инета вдруг получил класс сервера и доступ к БД? вам самому не удивительно это ?
0
|
1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
|
20.05.2012, 01:35 [ТС] | 14 |
Вот что вы ниже написали то и имел в виду =)
Класс сервера не получает. С чего бы вдруг?
0
|
20.05.2012, 01:40 | 15 | |||||
0
|
1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
|
20.05.2012, 01:46 [ТС] | 16 |
Вы имеете в виду, что логичнее сделать копию переменной, а не обращаться каждый раз?
0
|
20.05.2012, 01:58 | 17 |
вкратце так: у вас работа сервера, бд и клиента размазана где попало по всем классам и нет чёткой локализации задач, а поэтому читайте про "волшебный сервлет" и либо переделывайте код, либо просто можно меня игнорировать и тогда счастье
0
|
1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
|
20.05.2012, 01:59 [ТС] | 18 |
Я хотел сделать что то типа пула/объекта для работы с БД, но не смог придумать, как результат верно возвращать.
0
|
20.05.2012, 02:08 | 19 |
вы либо не можете либо не желаете понять в чём проблема, а я уже устал объяснять
попробую в последний раз: дело не в получилось или неполоучилось а в отсутствии разделения задач по классам, с таким же успехом можно всё напихать в один класс блок finally в клиенте это просто пиз.ец извините за выражение
0
|
1 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 89
|
|
20.05.2012, 02:11 [ТС] | 20 |
Спасибо!
Постараюсь разобраться. Сам хочу явную логику интерфейсов. Просто хромает теория. Спасибо!
0
|
20.05.2012, 02:11 | |
20.05.2012, 02:11 | |
Помогаю со студенческими работами здесь
20
Оцените и покритикуйте конфигурацию для игрового компьютера. Доработать сокет клиента и сокет сервера Покритикуйте сборку игрового ПК Параметры хостинга для сокет сервера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |