|
122 / 120 / 47
Регистрация: 14.09.2012
Сообщений: 276
|
||||||||||||||||
Многопользовательский чат на socket. Не обновляется список пользователей29.12.2013, 18:05. Показов 3319. Ответов 14
Метки нет (Все метки)
пишу многопользовательский чат на socket (уже написал с wcf и он работает). сообщения обмениваются но список клиентов обновляется только у первого и у последнего а у остальных не обновляется. посмотрите пожалуйста где я ошибся или я все не правильно делаю?
код обновления списка клиентов
ChatSocket.rar
0
|
||||||||||||||||
| 29.12.2013, 18:05 | |
|
Ответы с готовыми решениями:
14
Многопользовательский чат
|
|
122 / 120 / 47
Регистрация: 14.09.2012
Сообщений: 276
|
|
| 30.12.2013, 09:26 [ТС] | |
|
ни кто не знает?
0
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 30.12.2013, 14:09 | |
|
ablai96, Лучше используй команды... Как у меня... При поступлении команды - ты её разделаешь на ключ и текст... По ключу определяешь что нужно сделать в обратку клиенту, а если нужно то работаешь с текстом...
Добавлено через 21 секунду ablai96, И мой совет... Используй MySQL
0
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 30.12.2013, 14:13 | |
|
Вот мой проект... Там в сервере если хочешь поменяй адрес(localhost) до MySQL на мой внешний адрес
88.147.243.148 - пока что такой... И попробуй - авторизация + рега + подсчет ресурсов...
0
|
|
|
122 / 120 / 47
Регистрация: 14.09.2012
Сообщений: 276
|
|
| 30.12.2013, 14:14 [ТС] | |
|
SkoTi, я использую базу ms sql, командами я итак пользуюсь. первые 4 байта это размер входящих данных и следующие 4 байта команда. потом данные идут
0
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
||||||
| 30.12.2013, 14:21 | ||||||
|
ablai96, лучше мускул... чем ms sql.... По многим соображениям... А если уж так неимется с извращенями то попробуй ещё MySQL Lite - кстати... Скайп на нем работает.
А вобще регитсрацию пользователей я буду делать так -
Сервер пока с клиентом черновые)) Это черновик эксперементов так скажим)
0
|
||||||
|
122 / 120 / 47
Регистрация: 14.09.2012
Сообщений: 276
|
|
| 30.12.2013, 14:24 [ТС] | |
|
SkoTi, у меня не работает только отправка всем пользователям обновленный список
Добавлено через 37 секунд SkoTi, я просто использую Entity framework с базой
1
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 30.12.2013, 14:43 | |
|
ablai96, И по этому ваш проект весит 8мб да? Представь те вы делаете альтернативу ICQ или скайпа....
Задача: сделать чато обмен при этом что бы пользователю качать было минимум клиента и клиент запускался без требования каких либо библиотек сторонних и даже NET использовал не выше 2.0 так как есть до сих пор пользователи Win XP + А если вам понадобится ещё с 10яток функций добавить? Например - удаление и добовление в друзья... и многое другое м? Переписывать весь код придется? Я же пока что не знаю - как мне бы сделать общий чат а не приватный что бы сервер сообщение всем рассылал... Добавлено через 3 минуты Что касается вашего проекта... Дам совет.... У вас же есть лист пользлвателей? Сделйте таймре у клиента что бы каждые 2 сек или 5 сек запрашивал список пользователей - А на сервере с помощью forache сделайте как у меня текстовую строку в виде - SkoT;ablai96;mikael и т д... А в клиенте принять и с помощью Split(';') разбить обратно на массив и перевести его в лист список... Сложности - 0.... Ну или на сервере проводить отправку каждые 5 сек каждому потоку туже самую текстовую строку насильно.... Но рискуешь нарватся на исключение. Добавлено через 21 секунду А лучше постучи в скайп - d1ment0rr Добавлено через 4 минуты ablai96, Помни! Клиент пользователя должен сам захотеть принять а не сервер спрашивать клиента на то что хочет ли он принять список пользователей...
0
|
|
|
122 / 120 / 47
Регистрация: 14.09.2012
Сообщений: 276
|
|
| 30.12.2013, 14:50 [ТС] | |
|
SkoTi, клиент весит 30 КБ, это весь проект. а списки я по байтам передаю и собираю с этим все нормально, но только первый клиент принимает список а остальные не принимают
Добавлено через 1 минуту я уже писал такой же чат на wcf с duplex-ными соединениями там все работает
0
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 30.12.2013, 14:53 | |
Ты или пробуй как тебе говарят сделать или зачем спрашиваешь?Я тебе уже дал резонный ответ что не сервер должен навязывать что то а клиент должен запрашивать и получать ответ. Попробуй сделать в клиенте запрос на список пользователей а на сервере отвечай текущим списком пользователей. Добавлено через 2 минуты ablai96, иначе это лишняя перегрузка сервера... Посмотри как сделаны серверы World Of wacraft... где онлайны по 5к и обрабатывается не просто чат а все действия юзера и расчитываются и передаются определённым юзерам действия соседних юзеров и многое другое... Представь если бы не клиент отпровлял действия юзера а сервер запрашивал последние действия с каждого то какая бы нагрузка была м?
0
|
|
|
122 / 120 / 47
Регистрация: 14.09.2012
Сообщений: 276
|
|
| 30.12.2013, 15:02 [ТС] | |
|
SkoTi, если каждые 5 сек обновлять список когда пользователи не вошли тогда и будут перегрузка из за того что все клиенты обновляют список контактов. а у меня оно обновляется если только кто то вошел или вышел. всех клиентов и так слушаю я их по сокету, но зачем обновлять список если там нет изменений?
0
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 30.12.2013, 15:04 | |
|
ablai96, но если у тебя онлайн 5к или 50к то сколько же запросов будет в сек?
0
|
|
|
122 / 120 / 47
Регистрация: 14.09.2012
Сообщений: 276
|
|
| 30.12.2013, 15:07 [ТС] | |
|
SkoTi, в этом случае разницы не будет, так как запросы будут в одинаковом количестве приходить как и ответы сервера
0
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 30.12.2013, 15:09 | |
|
ablai96, Тогда пробуй тем же способом которым и сообщения отправляешь отправлять.[/CSHARP]
0
|
|
|
122 / 120 / 47
Регистрация: 14.09.2012
Сообщений: 276
|
|
| 30.12.2013, 15:49 [ТС] | |
|
исправил, я оказывается не правильно байты обработал когда обновлял их
0
|
|
| 30.12.2013, 15:49 | |
|
Помогаю со студенческими работами здесь
15
Многопользовательский чат Многопользовательский чат в батнике
Создать многопользовательский чат Многопользовательский чат на Batch Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|